Programação em Python – Conceitos Fundamentais

1. Respostas Diretas

  • Do que se trata o conteúdo? Apresenta os fundamentos da programação em Python: criação e execução de módulos, estruturas de controle (if, else, loops), funções definidas pelo usuário, variáveis, mutabilidade, passagem de parâmetros e boas práticas de documentação.
  • Principais assuntos (exemplos)
    • Módulos e scripts – exemplo: hello.py com print().
    • Entrada/saídainput() e eval() para ler e converter valores.
    • Estruturas de decisãoif, else (ex.: temperatura > 86).
    • Laços de repetiçãofor sobre strings, listas e range().
    • Funções – definição com def, uso de return vs print(), docstrings.
    • Variáveis e mutabilidade – objetos imutáveis (int, str) vs mutáveis (list).
    • Passagem de parâmetros – comportamento com objetos imutáveis e mutáveis.
  • Ponto de maior atenção A diferença entre print() e return em funções, e como a mutabilidade afeta a passagem de argumentos.
  • Conclusão Compreender esses conceitos permite escrever scripts corretos, reutilizáveis e bem documentados, além de evitar erros comuns como alterações inesperadas de listas ou uso indevido de print() dentro de funções que deveriam devolver valores.

2. Resumo dos Tópicos

3.1 Programas em Python

Um programa Python é um conjunto de instruções armazenadas em arquivos .py. O exemplo hello.py demonstra atribuição de strings a variáveis e impressão com print(). O programa é executado linha a linha, e o shell pode ser reiniciado para garantir um ambiente limpo.

3.1.1 Módulos

Qualquer arquivo .py é um módulo. Importar um módulo executa seu código (ex.: import math). Módulos podem conter funções, classes e variáveis.

3.1.2 Função print()

Exibe valores no console. Aceita números, strings, listas etc. Cada chamada gera uma nova linha.

3.1.3 Função input()

Solicita dados ao usuário, sempre retornando uma string. Para obter números, combina‑se com eval() ou converte‑se explicitamente (int(), float()).

3.2 Estruturas de Controle de Execução

Permitem decidir quais instruções executar e repetir blocos de código.

3.2.1 Decisão de caminho único (if)

Executa o bloco indentado somente se a condição for True. Exemplo: temperatura > 86.

3.2.2 Decisão de caminho duplo (if … else)

Executa um bloco quando a condição é True e outro quando é False. Exemplo: mensagens “Está quente!” vs “Não está quente!”.

3.2.3 Indentação

Em Python, a indentação define blocos de código. A mesma indentação indica que a linha está fora do if, enquanto indentação maior a inclui no bloco.

3.2.4 Laço for

Itera sobre sequências (strings, listas, range()). Cada iteração atribui o próximo elemento a uma variável de controle.

3.2.5 Função range()

Gera sequências numéricas: range(stop), range(start, stop), range(start, stop, step).

3.3 Funções Definidas pelo Usuário

Definidas com def nome(parâmetros):. O corpo é indentado. return devolve um valor; print() apenas exibe.

3.3.1 Docstrings

String literal logo após a definição da função, usada por help() para documentação.

3.4 Variáveis e Atribuições

Variáveis são nomes que referenciam objetos. Tipos imutáveis (int, str, tuple) não podem ser alterados; tipos mutáveis (list, dict) podem.

3.4.1 Mutabilidade vs Imutabilidade

Alterar um objeto mutável afeta todas as variáveis que o referenciam; objetos imutáveis criam novos objetos ao “modificar”.

3.4.2 Troca de valores

Python permite atribuição múltipla: a, b = b, a. Também permite atribuição encadeada: i = j = k = 0.

3.5 Passagem de Parâmetros

Argumentos são passados por referência ao objeto. Para objetos imutáveis, a função não pode alterar o original; para mutáveis, a função pode modificar o objeto compartilhado.

3.5.1 Exemplo com int (imutável)

Função g(x): x = 5 não altera a variável original.

3.5.2 Exemplo com list (mutável)

Função h(lst): lst[0] = 5 altera a lista original.

3.5.3 Função de troca de primeiro/último elemento

Modifica a lista in‑place, sem retornar valor.

3. Mapa Mental

mindmap root((Programação em Python)) sub1(Módulos & Scripts) sub1a(hello.py – print) sub1b(Importação) sub2(Estruturas de Controle) sub2a(If – caminho único) sub2b(If‑else – caminho duplo) sub2c(Indentação) sub2d(For – iteração) sub2e(Range – sequências numéricas) sub3(Funções) sub3a(Definição com def) sub3b(Return vs Print) sub3c(Docstrings & help) sub4(Variáveis & Atribuição) sub4a(Tipos Imutáveis) sub4b(Tipos Mutáveis) sub4c(Troca de valores) sub5(Passagem de Parâmetros) sub5a(Objetos Imutáveis) sub5b(Objetos Mutáveis) sub5c(Exemplo trocaPU)

4. Questões sobre o assunto

1. Qual das alternativas abaixo descreve corretamente a diferença entre print() e return dentro de uma função?
1.50 pontos Média

Resposta correta: C) print() exibe um valor no console e a função devolve None; return encerra a função e devolve o valor especificado.

Explicação: print() tem efeito colateral (saída), mas a função continua e retorna None. return finaliza a execução e entrega o valor ao chamador, permitindo seu uso em expressões.

2. Considere o código abaixo:

def h(lst):
    lst[0] = 5

my_list = [3, 6, 9]
h(my_list)
Qual será o conteúdo de my_list após a chamada da função?
2.50 pontos Difícil

Resposta correta: B) [5, 6, 9]

Explicação: lst referencia a mesma lista que my_list. Modificar lst[0] altera o primeiro elemento da lista original.

3. Qual das sentenças abaixo cria corretamente um laço que imprime os números pares de 0 a 8 (inclusive) usando range()?
2.50 pontos Difícil

Resposta correta: A) for i in range(0,9,2): print(i)

Explicação: range(0,9,2) gera 0,2,4,6,8 – exatamente os pares desejados.

4. Analise o trecho a seguir:

def trocaPU(lst):
    lst[0], lst[-1] = lst[-1], lst[0]

time = ['Ava', 'Eleanor', 'Clare', 'Sarah']
trocaPU(time)
Qual será o conteúdo final da lista time?
3.50 pontos Extrema

Resposta correta: A) ['Sarah', 'Eleanor', 'Clare', 'Ava']

Explicação: A atribuição múltipla troca simultaneamente o primeiro e o último elemento da lista.

Pontuação Total
0.00