Apostila de Python

Apoio rápido para revisar os conceitos do curso, ver exemplos e executar simulações dos códigos principais direto nesta página. Seus arquivos Python continuam separados e intactos.

Como usar esta apostila

Use esta página como consulta: procure o assunto no índice, leia o resumo, observe o exemplo e clique em Executar exemplo quando houver botão. Os botões não alteram seus arquivos; eles apenas mostram a saída esperada dos conceitos no navegador.

Ideia principal: Python executa comandos de cima para baixo. Variáveis guardam dados, operadores calculam ou comparam, estruturas de controle decidem o fluxo, estruturas de dados organizam valores, funções reaproveitam código, exceções tratam erros, arquivos guardam dados fora do programa e módulos/pacotes organizam projetos.

Módulo 1

Base da linguagem: instalação, primeiro programa, variáveis, operadores, estruturas de controle e estruturas de dados.

Introdução ao Python

Python é uma linguagem de programação famosa por ter sintaxe simples. Ela é usada em automação, análise de dados, inteligência artificial, sites, APIs e scripts do dia a dia.

  • Interpretada: o código é executado por um interpretador Python.
  • Indentação: espaços no começo da linha definem blocos, como em if, for e funções.
  • Case-sensitive: idade e Idade são nomes diferentes.

1.1. Instalação e configuração

No terminal, você confirma se o Python está instalado com python --version. Em projetos com ambiente virtual, primeiro ativa a pasta .venv.

# PowerShell, dentro da pasta do projeto
.\.venv\Scripts\Activate.ps1

# Ver a versão instalada
python --version

# Instalar dependências do projeto
pip install -r requirements.txt

Se o PowerShell só imprimir o caminho do activate, faltou usar .\ antes do arquivo ou faltou chamar o script correto do PowerShell.

1.2. Seu primeiro programa Python

print() mostra algo na tela. Textos ficam entre aspas simples ou duplas.

print("Olá, mundo!")
print("Estou aprendendo Python.")

          

2.1. Variáveis

Variável é um nome que aponta para um valor guardado na memória. Use nomes claros, sem espaço, e de preferência em minúsculas com underline.

int

Número inteiro.

idade = 25
float

Número decimal.

preco = 9.99
str

Texto.

nome = "Ellen"
bool

Verdadeiro ou falso.

tem_desconto = True
nome = "Ellen"
idade = 23
altura = 1.65
estudando_python = True

print(nome, idade, altura, estudando_python)

          

2.2. Operadores

Operadores fazem contas, comparações e combinações lógicas. Eles aparecem muito em condições, loops e cálculos.

a = 6
b = 3

print(a + b)   # soma
print(a - b)   # subtração
print(a * b)   # multiplicação
print(a / b)   # divisão
print(a // b)  # divisão inteira
print(a % b)   # resto da divisão
print(a ** b)  # potência

print(a > b)              # comparação
print((a > 5) and (b < 5)) # lógica

          

3. Estruturas de controle

Estruturas de controle mudam o caminho do programa. if decide, for repete sobre uma sequência e while repete enquanto uma condição for verdadeira.

idade = 18
if idade >= 18:
    print("Maior de idade")
else:
    print("Menor de idade")

for numero in range(1, 4):
    print(numero)

contador = 1
while contador <= 3:
    print(contador * 2)
    contador += 1

          

4. Estruturas de dados: listas e tuplas

Listas e tuplas guardam vários valores em uma só variável. Listas podem mudar; tuplas não devem ser alteradas depois de criadas.

frutas = ["maçã", "banana", "laranja"]
frutas.append("uva")
frutas.insert(1, "abacaxi")
frutas.remove("banana")

print(frutas)
print(frutas[0])
print(frutas[-1])

ponto = (5, 6)
print(ponto[0])
print(ponto[1])

            

Lembrete de prova: o método que adiciona um item ao final da lista é append(). insert() adiciona em uma posição escolhida.

4.2. Dicionários

Dicionário guarda pares de chave e valor. É ótimo quando você quer identificar cada informação por nome.

pessoa = {
    "nome": "Ellen",
    "idade": 23,
    "cidade": "Belo Horizonte"
}

print(pessoa["nome"])
print(pessoa.keys())
print(pessoa.values())
print(pessoa.items())

pessoa.update({"profissao": "Desenvolvedora"})
print(pessoa)

          

4.3. Conjuntos (set)

Conjunto é uma coleção sem ordem fixa e sem valores repetidos. Serve muito bem para remover duplicados e fazer operações como união e interseção.

conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}

print(conjunto1 | conjunto2)  # união
print(conjunto1 & conjunto2)  # interseção
print(conjunto1 - conjunto2)  # diferença
print(conjunto1 ^ conjunto2)  # diferença simétrica

cores = {"vermelho", "azul"}
cores.add("preto")
cores.discard("verde")
print(cores)

          

Módulo 2

Funções, erros, entrada e saída, arquivos, módulos, módulos próprios e pacotes.

5. Funções

Função é um bloco de código reutilizável. Ela pode receber parâmetros, executar uma tarefa e devolver um resultado com return.

def saudacao(nome):
    print(f"Olá, {nome}!")

def soma(a, b):
    return a + b

quadrado = lambda x: x ** 2

saudacao("Ellen")
print(soma(5, 3))
print(quadrado(4))

          

6. Tratamento de erros e exceções

Uma exceção é um erro que acontece durante a execução. O bloco try guarda o código que pode falhar, except trata o erro, else roda se não houver erro e finally roda no final de qualquer jeito.

try:
    resultado = 10 / 2
except ZeroDivisionError:
    print("Não é possível dividir por zero.")
else:
    print(f"Sucesso! Resultado: {resultado}")
finally:
    print("Finalizando processamento.")

            

Atenção para questões: em Python não usamos catch. Usamos try e except.

6.2. Exceções personalizadas

Você pode criar ou disparar erros específicos quando uma regra do seu programa for quebrada. Para disparar uma exceção, use raise.

def validar_idade(idade):
    if idade < 0:
        raise ValueError("Idade não pode ser negativa.")
    return "Idade válida."

try:
    print(validar_idade(-1))
except ValueError as erro:
    print(f"Erro: {erro}")

          

7. Entradas/saídas

Entrada é informação recebida pelo programa, geralmente com input(). Saída é informação mostrada, geralmente com print(). O input() sempre retorna texto; para fazer contas, converta com int() ou float().

nome = input("Insira seu nome: ").capitalize()
idade = int(input("Insira sua idade: "))

print(f"Olá, {nome}! Você tem {idade} anos.")

if idade >= 18:
    print("Você é maior de idade.")
else:
    print("Você é menor de idade.")

          

7.1. Leitura e escrita de arquivos

Arquivos permitem salvar dados fora do programa. Os modos mais comuns são r para ler, w para escrever apagando o conteúdo antigo e a para adicionar no final.

with open("dados.txt", "r", encoding="utf-8") as arquivo:
    conteudo = arquivo.read()
    print(conteudo)

with open("dados.txt", "w", encoding="utf-8") as arquivo:
    arquivo.write("Novo conteúdo")

with open("dados.txt", "a", encoding="utf-8") as arquivo:
    arquivo.write("\nMais uma linha")

            

Use with open(...) quando puder. Ele fecha o arquivo automaticamente no final do bloco.

8. Importação e criação de módulos

Módulo é um arquivo .py que pode ser importado em outro arquivo. Isso evita repetir código e deixa o projeto mais organizado.

import math
print(math.sqrt(25))

from math import sqrt
print(sqrt(36))

import random
print(random.randint(1, 10))

          

8.1. Criação de módulos próprios

Para criar seu próprio módulo, crie um arquivo Python com funções, classes ou variáveis e importe esse arquivo em outro código.

# meu_modulo.py
def saudar(nome):
    print(f"Olá, {nome}!")

def calcular_soma(a, b):
    return a + b


# outro_arquivo.py
import meu_modulo

meu_modulo.saudar("João")
resultado = meu_modulo.calcular_soma(5, 3)
print(resultado)

          

8.2. Pacotes

Pacote é uma pasta que organiza vários módulos. Para Python reconhecer uma pasta como pacote, normalmente ela possui um arquivo especial chamado __init__.py.

meu_pacote/
    __init__.py
    modulo1.py
    modulo2.py

Depois, os módulos podem ser importados assim:

from meu_pacote import modulo1, modulo2

modulo1.funcao1()
modulo2.funcao2()

Módulos e pacotes ajudam a manter o código legível, estruturado e fácil de manter. Em projetos maiores, essa organização faz muita diferença.

Laboratório de exemplos

Escolha um exemplo e clique em executar. Esta área mostra a saída esperada sem mexer em nenhum arquivo da pasta.

Expressão lógica

(not True) or (False and True)

            

Tabuada

for i in range(1, 11):
    print(7, "x", i, "=", 7 * i)

            

Python real no navegador

Esta área usa Pyodide para executar Python dentro do navegador. Ela precisa de internet na primeira carga e não mexe nos arquivos do projeto.

Clique em Executar Python para carregar o interpretador.

Se essa área não carregar, use a seção "Como rodar seus arquivos reais" no terminal. O navegador comum não consegue abrir seus arquivos Python diretamente sem um interpretador.

Como rodar seus arquivos reais

Esta página simula exemplos no navegador. Para rodar os arquivos Python de verdade, use o terminal na pasta do projeto.

cd "C:\Users\lucas\Desktop\Python - Ellen"
.\.venv\Scripts\Activate.ps1

python conceitosBasicosPython.py
python listas.py
python dicionario.py
python conjuntos.py
python funcoes.py
python errosComunsPython.py
python entradasSaidas.py
python leituraEscritaArquivos.py
python importacaoCriacaoModulos.py

Para os arquivos Flask, instale as dependências e rode um arquivo por vez:

pip install -r requirements.txt
python tabuada.py
python automacao.py
python automacaoCriandoArquivoTxt.py

Depois de rodar um Flask, abra o endereço mostrado no terminal, geralmente http://127.0.0.1:5000.

Cola rápida

Tipos básicos

  • int: inteiro.
  • float: decimal.
  • str: texto.
  • bool: True ou False.

Listas

  • append(): adiciona no final.
  • insert(): adiciona em posição específica.
  • remove(): remove pelo valor.
  • pop(): remove por índice ou remove o último.

Erros

  • try: tenta executar.
  • except: trata o erro.
  • else: roda se não houver erro.
  • finally: roda no final sempre.
  • raise: dispara uma exceção.

Arquivos

  • r: leitura.
  • w: escrita apagando o anterior.
  • a: adiciona no final.
  • with open(): abre e fecha automaticamente.

Arquivos do projeto

Referência dos arquivos que existem na pasta e qual assunto cada um cobre.

conceitosBasicosPython.py

Assuntos: primeiro programa, variáveis, tipos básicos, operadores aritméticos, comparação e lógica.

python conceitosBasicosPython.py
listas.py

Assuntos: listas, índices positivos e negativos, métodos de listas, compreensão de listas e tuplas.

python listas.py
dicionario.py

Assuntos: dicionários, chaves, valores, items e update.

python dicionario.py
conjuntos.py

Assuntos: set, união, interseção, diferença, diferença simétrica e métodos de conjuntos.

python conjuntos.py
funcoes.py

Assuntos: def, chamada de função, parâmetros, return e lambda.

python funcoes.py
errosComunsPython.py

Assuntos: SyntaxError, NameError, TypeError, IndexError, try, except, else, finally e raise.

python errosComunsPython.py
entradasSaidas.py

Assuntos: input, print, conversão com int e condição com idade.

python entradasSaidas.py
leituraEscritaArquivos.py e dados.txt

Assuntos: leitura, escrita, append, close e with open.

python leituraEscritaArquivos.py
importacaoCriacaoModulos.py

Assuntos: import, from import, math, random, datetime, módulos próprios e pacotes.

python importacaoCriacaoModulos.py
Projetos Flask

Arquivos: tabuada.py, automacao.py, automacaoCriandoArquivoTxt.py e requirements.txt.

pip install -r requirements.txt
python tabuada.py