Noções Básicas de Python
10 exemplos para você começar com os fundamentos de Python - 7 básicos e 3 intermediários.
Busque em todas as páginas da documentação
10 exemplos para você começar com os fundamentos de Python - 7 básicos e 3 intermediários.
python3 --version).uv venv ou python -m venv .venv antes de instalar pacotes.Execute Python interativamente ou como um script.
# hello.py
def main() -> None:
name = "world"
print(f"Hello, {name}!")
if __name__ == "__main__":
main()python3 hello.py executa o script; python3 sozinho abre o REPL.if __name__ == "__main__" protege o código que deve ser executado apenas quando diretamente invocado.Nomes se referem a objetos; tipos vivem nos objetos, não nos nomes.
count = 10 # int
count = "ten" # agora str - legal em Python
items: list[int] = [1, 2, 3] # dica de tipo opcional; a execução ainda é dinâmicais testa a identidade do objeto; == testa a igualdade de valor.Relacionado: Variáveis, Tipos e Tipagem Dinâmica - semântica de referência
Inteiros têm precisão arbitrária; floats seguem IEEE 754.
big = 10**100
ratio = 1 / 3
truthy = bool("non-empty") # True
falsy = bool("") # False// é divisão inteira (floor division); / sempre retorna float em Python 3.Decimal e Fraction evitam surpresas com floats para dinheiro e razões.if.Relacionado: Números, Booleanos e Aritmética - armadilhas de Decimal e float
Formate texto com expressões inline legíveis.
user = "Ada"
score = 98.5
msg = f"{user} scored {score:.1f}%"
escaped = r"C:\new\path" # string raw - barras invertidas literais:.2f, :,).str é texto Unicode; bytes é binário bruto - decodifique explicitamente com uma codificação.Relacionado: Strings e f-strings - Unicode e bytes
Ramifique e itere com blocos baseados em indentação do Python.
values = [1, 2, 3, 4]
evens = []
for n in values:
if n % 2 == 0:
evens.append(n)
else:
print("loop finished") # executa quando o loop completa sem breakfor itera sobre qualquer iterável, não apenas listas.else em um loop for executa apenas se o loop não usou break.Relacionado: Fluxo de Controle - match/case e while
Corresponda à forma, não apenas ao valor (Python 3.10+).
def describe(value: object) -> str:
match value:
case int(n) if n < 0:
return "negative int"
case int(n):
return f"int {n}"
case [first, *rest]:
return f"list starting with {first}"
case {"id": int(uid), "name": str(name)}:
return f"user {uid}: {name}"
case _:
return "something else"case _ é o fallback curinga.match ao ramificar com base na estrutura; use if/elif para booleanos simples.Relacionado: Fluxo de Controle - guia completo de match
Construa listas declarativamente em uma única expressão.
squares = [n * n for n in range(10) if n % 2]
mapping = {name: len(name) for name in ["ada", "linus", "guido"]}
unique_lengths = {len(name) for name in ["ada", "linus"]}append manuais.{chave: valor} e {item}, respectivamente.(x for x in items) quando precisar apenas de iteração preguiçosa.Relacionado: Compreensões e Expressões Geradoras - quando preferir geradores
Aceite parâmetros posicionais, de palavra-chave e variádicos.
def connect(host: str, port: int = 443, **options: object) -> dict:
return {"host": host, "port": port, **options}
def total(*amounts: float, tax: float = 0.0) -> float:
return sum(amounts) * (1 + tax)
connect("api.example.com", timeout=5, verify=True)
total(10.0, 20.0, tax=0.08)* são apenas de palavra-chave (tax em total).**options coleta argumentos de palavra-chave extras em um dicionário.=[]) são um bug comum - use None e atribua dentro.Relacionado: Funções, Args e Escopo - regras de escopo LEGB
Organize o código em módulos e pacotes reutilizáveis.
# Em myapp/utils.py
def slugify(text: str) -> str:
return text.lower().replace(" ", "-")
# Em myapp/main.py
from myapp.utils import slugify
print(slugify("Hello World")).py é um módulo; pastas com __init__.py (ou pacotes de namespace) formam pacotes.from myapp.utils import ...) em código de aplicação.python -m myapp.main para que os imports resolvam corretamente.Relacionado: Módulos, Imports e Pacotes - evitando importações circulares
Leia e escreva arquivos com segurança com limpeza automática.
from pathlib import Path
config_path = Path("config.json")
config_path.write_text('{"debug": true}', encoding="utf-8")
data = config_path.read_text(encoding="utf-8")
with Path("log.txt").open("a", encoding="utf-8") as fh:
fh.write("started\n")pathlib.Path envolve caminhos do SO com uma API consistente.encoding="utf-8" para arquivos de texto em todas as plataformas.with garante que os arquivos sejam fechados mesmo quando uma exceção ocorre.Relacionado: Arquivos e I/O - I/O binário e codificações
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026