CURSOS / TECNOLOGIA / PYTHON NA PRÁTICA (ETAPA 1 DE 5)
← Voltar aos cursos
CURSO PRÁTICO · ETAPA 1 DE 5 · PYTHON 3

Python na Prática: Fundamentos, Jogos, Dados e Web

Domine a base do Python moderno passo a passo: configure o interpretador e o VS Code, entenda variáveis como etiquetas de memória, manipule strings e números com precisão e domine listas, laços for, list comprehensions, fatiamento, tuplas e PEP 8.

Ilustração editorial de mesa de trabalho com monitor exibindo código Python, terminal interativo e caderno de anotações.
Capítulos 1 a 4Ambiente, tipos simples, listas, laços e PEP 8
6 Oficinas + LabCódigo copiável e simulador de listas ao vivo
Podcast IntegradoÁudio complementar sobre variáveis como etiquetas

Trilha Completa em 5 Etapas

Você está na Etapa 1. Cada módulo avança na construção de base sólida até jogos, visualização de dados e aplicações web.

PODCAST DE APOIO · REPRODUÇÃO DIRETA NA PÁGINA

Variáveis como Etiquetas na Memória

Ouça o episódio complementar diretamente por aqui para fixar o modelo mental mais importante do Capítulo 2: por que variáveis em Python não são caixas rígidas, e sim etiquetas apontando para objetos na memória — conceito que também explica cópias e aliases em listas.

Oficinas Práticas — Capítulos 1 a 4

Python 3.9–3.11+
Diagrama visual mostrando variáveis como etiquetas conectadas a valores e índices de listas em Python.
Modelo mental da Etapa 1: variáveis etiquetam valores na memória; listas organizam sequências mutáveis por índice e laços for percorrem cada item com indentação rigorosa.
OFICINA 01 · CAPÍTULO 1

Ambiente Python, VS Code e Leitura de Tracebacks

Antes de escrever algoritmos complexos, precisamos garantir que o interpretador correto esteja acessível no terminal e que o editor ajude a enxergar erros rapidamente. No livro Python Crash Course, Eric Matthes recomenda instalar o pacote oficial de python.org e usar o Visual Studio Code com a extensão oficial da Microsoft para Python.

Atenção no Windows: durante o instalador oficial, marque sempre a opção Add Python to PATH. Evite instalar o Python pela Microsoft Store, pois ela aplica restrições de permissão que costumam atrapalhar pacotes e scripts no terminal. No Windows o comando costuma ser python; no macOS e Linux, python3.

Organização e Primeiros Passos

  • Pasta de trabalho: crie um diretório chamado python_work (tudo em minúsculas e com underscores no lugar de espaços — convenção padrão de nomes em Python).
  • Modo interativo (REPL): digite python (ou python3) no terminal para abrir o prompt >>> e testar expressões instantaneamente. Para sair, execute exit() (ou Ctrl+Z + Enter no Windows / Ctrl+D no macOS e Linux).
  • Lendo tracebacks: quando um script falha, o Python imprime um traceback. Leia de baixo para cima: a última linha mostra o tipo do erro (ex.: NameError), e a linha logo acima indica o arquivo, o número da linha e o trecho exato onde o interpretador travou.
hello_world.py — Primeiro script e teste de traceback
message = "Olá, mundo do Python!"
print(message)

message = "Etapa 1 configurada com sucesso no VS Code."
print(message)

Prática rápida

Crie a pasta python_work, salve hello_world.py e execute no terminal. Em seguida, provoque um erro proposital trocando print(message) por print(mesage) para observar como o Python 3.10+ sugere a correção no traceback.

OFICINA 02 · CAPÍTULO 2

Variáveis como Etiquetas e Manipulação de Strings

Em muitas linguagens introdutórias, ensina-se que variáveis são "caixas" onde guardamos valores. Em Python, o modelo mais fiel é pensar em variáveis como etiquetas (labels) coladas a valores na memória. Você pode mover a etiqueta para outro valor a qualquer momento.

Regras de Nomenclatura

  • Nomes podem conter apenas letras, números e underscores (_), mas nunca podem começar com um número (1_message gera erro; message_1 é válido).
  • Não use espaços (use greeting_message) e evite palavras reservadas ou funções embutidas como print.
  • Prefira nomes descritivos e curtos: student_name comunica muito melhor do que s_n.

Strings, f-strings e Limpeza Moderna (Python 3.9+)

Strings aceitam aspas simples ('...') ou duplas ("..."), o que facilita incluir apóstrofos dentro do texto sem causar SyntaxError. Além dos clássicos .title(), .upper(), .lower() e dos limpadores de espaços em branco (.rstrip(), .lstrip(), .strip()), o Python 3.9 introduziu métodos diretos para remover prefixos e sufixos exatos.

strings_demo.py — f-strings, tabulação e removeprefix/removesuffix
first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
print(f"\tOlá, {full_name.title()}!\n")

nostarch_url = "https://nostarch.com"
clean_url = nostarch_url.removeprefix("https://")
print(clean_url)  # Saída: nostarch.com

filename = "python_notes.txt"
print(filename.removesuffix(".txt"))  # Saída: python_notes
Diferença prática entre .strip() e .removeprefix()

.strip() remove caracteres das extremidades (por padrão espaços, \t e \n). Já .removeprefix("https://") remove exatamente a sequência informada apenas se ela estiver no início da string, evitando apagar letras isoladas por acidente.

OFICINA 03 · CAPÍTULO 2 (CONT.)

Números, Constantes e o Zen do Python

Python separa inteiros (int) de números com ponto decimal (float). Mesmo quando você divide dois inteiros exatos, como 4 / 2, o resultado é sempre um float (2.0). Além disso, devido à representação binária de ponto flutuante, operações como 0.2 + 0.1 retornam 0.30000000000000004 — comportamento normal em praticamente toda linguagem de programação.

Recursos numéricos e boas práticas do Capítulo 2
RecursoExemploComportamento
Exponenciação3 ** 2Retorna 9 (dois asteriscos representam potência).
Underscores visuaisuniverse_age = 14_000_000_000Melhora a leitura de números grandes; o Python ignora os _.
Atribuição múltiplax, y, z = 0, 0, 0Inicializa várias variáveis na mesma linha.
ConstantesMAX_CONNECTIONS = 5000Escrita em MAIÚSCULAS sinaliza que o valor não deve mudar.

O Zen do Python (Tim Peters)

Ao digitar import this no terminal Python, você lê os princípios que guiam a comunidade. Três máximas resumem o espírito da Etapa 1: "Simple is better than complex" (Simples é melhor que complexo), "Readability counts" (Legibilidade conta) e "Now is better than never" (Agora é melhor que nunca). Use comentários com # para explicar o porquê de decisões importantes no código.

OFICINA 04 · CAPÍTULO 3

Listas: Indexação, Mutação e Ordenação

Uma lista é uma coleção ordenada de itens delimitada por colchetes []. Em Python, a contagem começa em 0 (não em 1). Para acessar o último elemento sem precisar saber o tamanho da lista, use o índice negativo [-1]; tentar acessar um índice inexistente dispara IndexError: list index out of range.

Métodos essenciais de listas e suas diferenças
OperaçãoMétodo / SintaxeEfeito na Lista
Adicionar ao fimmotorcycles.append('ducati')Insere no final sem alterar índices anteriores.
Inserir em posiçãomotorcycles.insert(0, 'honda')Abre espaço no índice 0 e desloca os demais.
Remover definitivamentedel motorcycles[0]Apaga o item; não permite reaproveitar o valor.
Remover e reutilizarpopped = motorcycles.pop()Remove o último (ou índice pop(0)) e devolve o valor.
Remover por valormotorcycles.remove('ducati')Remove apenas a primeira ocorrência do valor.
Ordenar permanentecars.sort() / cars.sort(reverse=True)Altera a ordem original da lista em definitivo.
Ordenar temporáriosorted(cars)Exibe ordenada sem modificar a lista original.
Inverter ordemcars.reverse()Inverte a ordem atual (não ordena alfabeticamente).
listas_crud.py — Criando, modificando e organizando listas
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(f"Original: {cars} | Total: {len(cars)}")
print(f"Exibição ordenada temporária: {sorted(cars)}")
print(f"Ainda intacta: {cars}")

last_car = cars.pop()
print(f"Último removido com pop(): {last_car.upper()}")
cars.reverse()
print(f"Lista invertida: {cars}")
OFICINA 05 · CAPÍTULO 4

Laços for, range() e List Comprehensions

Quando você precisa executar a mesma ação para todos os itens de uma lista, o laço for percorre cada elemento automaticamente: for magician in magicians:. Python usa a indentação (4 espaços) para definir o que pertence ao bloco do laço.

Armadilhas clássicas do for:
  • Esquecer os dois-pontos : gera SyntaxError: expected ':'.
  • Esquecer de indentar a linha seguinte dispara IndentationError.
  • Indentar uma linha final de resumo faz ela repetir em toda iteração (erro lógico silencioso).

Listas Numéricas e List Comprehensions

A função range(1, 5) gera os números 1, 2, 3, 4 — ela sempre para antes do valor final. Combinada com list(range(2, 11, 2)), cria sequências com passo definido. Já uma List Comprehension condensa o laço for e a criação da lista em uma única linha expressiva.

comprehensions.py — range(), estatísticas rápidas e list comprehension
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(min(digits), max(digits), sum(digits))

# Forma tradicional vs List Comprehension
squares = [value ** 2 for value in range(1, 11)]
print(squares)  # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
OFICINA 06 · CAPÍTULO 4 (CONT.)

Slicing, Cópia vs. Alias, Tuplas e PEP 8

Para trabalhar apenas com uma fatia (slice) da lista, informe o índice inicial e final separados por dois-pontos: players[0:3] pega os três primeiros itens. Omitir o início (players[:4]) começa do zero; omitir o fim (players[2:]) vai até o último elemento; e players[-3:] captura os três últimos.

Cópia real ([:]) vs. Alias (=): se você escrever friend_foods = my_foods, não criou uma segunda lista — apenas colou duas etiquetas na mesma lista na memória. Alterar uma altera a outra! Para criar duas listas independentes, use fatiamento completo: friend_foods = my_foods[:].

Tuplas (Listas Imutáveis) e Padrão PEP 8

  • Tuplas: usam parênteses dimensions = (200, 50). Tentar alterar um item (dimensions[0] = 250) gera TypeError: 'tuple' object does not support item assignment. Tecnicamente, a vírgula define a tupla — por isso uma tupla de 1 elemento exige vírgula: my_t = (3,). Embora imutáveis, você pode reatribuir a variável inteira a uma nova tupla.
  • PEP 8 (Guia de Estilo): use 4 espaços por nível de indentação (configure o editor para converter Tab em espaços), limite linhas de código a 79 caracteres (e comentários a 72 caracteres) e use linhas em branco com equilíbrio para separar blocos lógicos.
LABORATÓRIO INTERATIVO

Simulador de Listas, Slicing & Cópia vs. Alias

Escolha uma operação do Capítulo 3 ou 4 e observe como a lista principal my_foods e a referência secundária friend_foods se comportam na memória.

my_foods (Lista Principal) ['pizza', 'falafel', 'carrot cake', 'cannoli']
friend_foods (Lista Derivada) ['pizza', 'falafel', 'carrot cake']
Com my_foods[:], uma nova lista é criada na memória: adicionar 'cannoli' em my_foods não afeta friend_foods.
VERIFICAÇÃO DE DOMÍNIO

Quiz da Etapa 1 (Capítulos 1 a 4)

1. Por que o comando friend_foods = my_foods costuma causar bugs inesperados?

2. Qual método de string (Python 3.9+) remove exatamente "https://" do início de uma URL?

3. O que a expressão list(range(1, 5)) produz em Python?

4. Qual é a forma correta de declarar uma tupla com apenas um elemento?

CONSOLIDAÇÃO DA ETAPA 1

Checklist de Conclusão & Exportação

Marque os marcos concluídos antes de avançar para condicionais, dicionários e laços while.

0 de 6 concluídos
PRÓXIMA ETAPA · 2 DE 5

Etapa 2: Lógica de Decisão e Interatividade

Capítulos 5 a 7: instruções if/elif/else, testes booleanos, dicionários com aninhamento, entrada com input() e laços while.

Avançar para Etapa 2 →