🐍 Python para iniciantes e além

Tutorial de Programação em Python

Dos conceitos gerais aos tópicos específicos, em um só lugar.

1. O que é programação e por que Python

Programar é escrever instruções que um computador executa para resolver um problema. Essas instruções são escritas em uma linguagem de programação, que funciona como um meio-termo entre a linguagem humana e a linguagem da máquina.

Python é uma linguagem de alto nível, interpretada e de propósito geral, conhecida por sua sintaxe legível e clara. É amplamente usada em desenvolvimento web, ciência de dados, automação, inteligência artificial e muito mais. Suas principais vantagens são:

2. Instalação e primeiro programa

Baixe o Python no site oficial python.org e instale. Para verificar a instalação, abra o terminal e digite:

python --version

O tradicional primeiro programa exibe uma mensagem na tela:

# Salve em um arquivo chamado ola.py e execute com: python ola.py
print("Olá, mundo!")
💡 Dica: a função print() mostra texto no terminal. Tudo após o símbolo # é um comentário e é ignorado pelo Python.

3. Variáveis e tipos de dados

Uma variável é um nome que aponta para um valor armazenado na memória. Em Python não é preciso declarar o tipo: ele é inferido automaticamente.

nome = "Maria"        # str  (texto)
idade = 30            # int  (número inteiro)
altura = 1.65         # float (número decimal)
estudante = True      # bool (verdadeiro/falso)

print(nome, idade, altura, estudante)
TipoDescriçãoExemplo
intNúmero inteiro42
floatNúmero decimal3.14
strTexto (cadeia de caracteres)"Olá"
boolValor lógicoTrue / False

4. Operadores e expressões

# Aritméticos
soma = 10 + 3        # 13
divisao = 10 / 3     # 3.333...
inteira = 10 // 3    # 3  (divisão inteira)
resto = 10 % 3       # 1  (módulo)
potencia = 2 ** 8    # 256

# Comparação (retornam bool)
print(10 > 3)        # True
print(5 == 5)        # True
print(7 != 2)        # True

# Lógicos
print(True and False) # False
print(True or False)  # True
print(not True)       # False

5. Estruturas condicionais

Condicionais permitem executar blocos de código diferentes conforme uma condição. Em Python, a indentação (espaços no início da linha) define os blocos.

idade = 18

if idade < 12:
    print("Criança")
elif idade < 18:
    print("Adolescente")
else:
    print("Adulto")

6. Laços de repetição

Laços repetem instruções. Os principais são for e while.

# for: percorre uma sequência
for i in range(1, 6):     # 1, 2, 3, 4, 5
    print("Número:", i)

# while: repete enquanto a condição for verdadeira
contador = 0
while contador < 3:
    print("Contando", contador)
    contador += 1

# break interrompe; continue pula para a próxima iteração
for n in range(10):
    if n == 5:
        break
    if n % 2 == 0:
        continue
    print(n)   # imprime 1, 3

7. Coleções: listas, tuplas, dicionários e conjuntos

# Lista: ordenada e mutável
frutas = ["maçã", "banana", "uva"]
frutas.append("laranja")
print(frutas[0])          # maçã

# Tupla: ordenada e imutável
ponto = (10, 20)

# Dicionário: pares chave-valor
pessoa = {"nome": "Ana", "idade": 25}
print(pessoa["nome"])     # Ana

# Conjunto: elementos únicos, sem ordem
numeros = {1, 2, 2, 3}
print(numeros)            # {1, 2, 3}
ColeçãoOrdenada?Mutável?Duplicatas?
ListaSimSimSim
TuplaSimNãoSim
DicionárioSim (3.7+)SimChaves únicas
ConjuntoNãoSimNão

8. Funções

Funções agrupam código reutilizável. Use def para definir e return para devolver um resultado.

def saudacao(nome, mensagem="Olá"):
    return f"{mensagem}, {nome}!"

print(saudacao("Carlos"))               # Olá, Carlos!
print(saudacao("Ana", "Bem-vinda"))     # Bem-vinda, Ana!

# Argumentos variáveis
def somar(*numeros):
    return sum(numeros)

print(somar(1, 2, 3, 4))   # 10

# Função lambda (anônima)
dobro = lambda x: x * 2
print(dobro(5))            # 10

9. Módulos e pacotes

Módulos permitem organizar e reaproveitar código. A biblioteca padrão do Python já traz muitos módulos prontos.

import math
print(math.sqrt(16))       # 4.0

from datetime import date
print(date.today())

# Instalando pacotes externos (no terminal):
# pip install requests
import requests
resposta = requests.get("https://api.github.com")
print(resposta.status_code)

10. Manipulação de arquivos

# Escrevendo em um arquivo
with open("dados.txt", "w", encoding="utf-8") as arquivo:
    arquivo.write("Primeira linha\n")
    arquivo.write("Segunda linha\n")

# Lendo um arquivo
with open("dados.txt", "r", encoding="utf-8") as arquivo:
    conteudo = arquivo.read()
    print(conteudo)
💡 O bloco with fecha o arquivo automaticamente ao final, mesmo se ocorrer um erro.

11. Tratamento de exceções

Exceções são erros que ocorrem durante a execução. Trate-os com try/except.

try:
    numero = int(input("Digite um número: "))
    resultado = 10 / numero
    print("Resultado:", resultado)
except ValueError:
    print("Isso não é um número válido!")
except ZeroDivisionError:
    print("Não é possível dividir por zero!")
finally:
    print("Operação finalizada.")

12. Programação orientada a objetos (POO)

A POO organiza o código em classes (modelos) e objetos (instâncias dessas classes), com atributos (dados) e métodos (comportamentos).

class Animal:
    def __init__(self, nome):
        self.nome = nome

    def fazer_som(self):
        return "Som genérico"

# Herança
class Cachorro(Animal):
    def fazer_som(self):
        return "Au au!"

rex = Cachorro("Rex")
print(rex.nome)            # Rex
print(rex.fazer_som())     # Au au!

13. Tópicos específicos e avançados

Compreensão de listas (list comprehension)

quadrados = [x ** 2 for x in range(1, 6)]
print(quadrados)          # [1, 4, 9, 16, 25]

pares = [x for x in range(20) if x % 2 == 0]

Geradores e iteradores

def contador(maximo):
    n = 0
    while n < maximo:
        yield n          # produz valores sob demanda, economizando memória
        n += 1

for valor in contador(3):
    print(valor)         # 0, 1, 2

Decoradores

def registrar(funcao):
    def interna(*args, **kwargs):
        print(f"Chamando {funcao.__name__}")
        return funcao(*args, **kwargs)
    return interna

@registrar
def cumprimentar(nome):
    print(f"Olá, {nome}")

cumprimentar("Maria")

Type hints (anotações de tipo)

def media(numeros: list[float]) -> float:
    return sum(numeros) / len(numeros)

print(media([8.0, 9.5, 7.0]))

Ambientes virtuais e organização de projetos

# Criar um ambiente virtual isolado
python -m venv venv

# Ativar (Linux/macOS)
source venv/bin/activate

# Ativar (Windows)
venv\Scripts\activate

# Instalar dependências e salvá-las
pip install requests
pip freeze > requirements.txt

14. Próximos passos

Com a base coberta, explore áreas específicas conforme seu interesse:

🚀 A melhor forma de aprender é praticando. Crie pequenos projetos, leia código de outras pessoas e consulte a documentação oficial do Python.
← Voltar para a página inicial