Folha de consulta

Cheat sheet de Python: sintaxe, comandos e funções embutidas em tabelas

Atualizado: · Skillaria.Top

A sintaxe do Python é baseada em recuos em vez de chaves: o bloco depois dos dois-pontos é deslocado em 4 espaços. A base são variáveis sem declaração de tipo, condições if/elif/else, laços for e while, funções def e as funções embutidas print, len, range, input e type, além dos métodos de strings, listas e dicionários.

Esta cheat sheet de Python reúne em uma única página tudo o que é bom ter à mão nos primeiros meses: a sintaxe do Python, laços, funções embutidas, métodos de strings, listas e dicionários e os comandos do terminal. Cada tabela é uma referência curta com exemplos prontos, que podem ser colados diretamente no REPL.

Fundamentos da sintaxe Python

A principal característica da linguagem é que os blocos são definidos por recuos, e não por chaves. Depois de uma linha com dois-pontos (if, for, def, class), as linhas seguintes são deslocadas em 4 espaços. Misturar tabulações e espaços não é permitido — o resultado é IndentationError.

ConstruçãoExemploExplicação
Comentário# textotudo depois do # até o fim da linha é ignorado
Variávelage = 25o tipo não é declarado, ele é determinado pelo valor
Atribuição múltiplaa, b = 1, 2desempacotamento; troca de valores: a, b = b, a
Saídaprint("Olá", name)os argumentos são separados por espaço
Entradas = input("Nome: ")sempre devolve uma string
f-stringf"{name}: {price:.2f}"inserção de expressões e formatação
Anotação de tipocount: int = 0dica para IDE e verificadores, não é checada na execução
Bloco vaziopassmarcador onde a sintaxe exige um corpo
Importaçãofrom math import sqrtconexão de um módulo ou de um nome dele

Tipos de dados

TipoLiteralMutável
int42, 1_000_000não
float3.14, 1e-3não
boolTrue, Falsenão
str"texto", 'texto', """várias linhas"""não
list[1, 2, 3]sim
tuple(1, 2), (1,)não
dict{"a": 1}sim
set{1, 2}, vazio — set()sim
NoneTypeNone—

Operadores

GrupoOperadoresExemplo → resultado
Aritmética+ - * / // % **7 // 2 → 3, 7 % 2 → 1, 2 ** 10 → 1024
Comparação== != < > <= >=1 < x < 10 — encadeamento de comparações
Lógicaand or notx or "padrão"
Pertinênciain, not in"a" in "abc" → True
Identidadeis, is notx is None
Atribuição+= -= *= /=, :=if (n := len(s)) > 10: ...

Condições e correspondência de padrões

if score >= 90:
    grade = "A"
elif score >= 70:
    grade = "B"
else:
    grade = "C"

status = "adulto" if age >= 18 else "criança"   # operador ternário

match command:
    case "start":
        print("Iniciando")
    case "stop" | "exit":
        print("Parando")
    case _:
        print("Comando desconhecido")

São considerados falsos False, None, 0, a string vazia e as coleções vazias, por isso em vez de if len(items) > 0 basta escrever if items.

Laços em Python: sintaxe de for e while

Laço for

Sintaxe do laço for em Python: for variável in sequência: seguido do corpo com recuo. O laço percorre qualquer objeto iterável — string, lista, dicionário, arquivo, range.

for i in range(5):              # 0 1 2 3 4
    print(i)

for i in range(10, 0, -2):      # 10 8 6 4 2
    print(i)

for i, fruit in enumerate(["maçã", "pera"], start=1):
    print(i, fruit)

for name, score in zip(names, scores):
    print(name, score)

for key, value in prices.items():
    print(key, value)

Laço while

attempts = 3
while attempts > 0:
    password = input("Senha: ")
    if password == "secret":
        print("Acesso concedido")
        break
    attempts -= 1
else:
    print("Tentativas esgotadas")   # executa se não houve break
ComandoO que faz
breaksai do laço antecipadamente
continuepassa para a próxima iteração
else em laçoexecuta se o laço terminou sem break
range(stop), range(start, stop, step)sequência de números, stop não é incluído

Compreensões de listas (comprehensions)

squares = [x ** 2 for x in range(10)]
evens = [x for x in numbers if x % 2 == 0]
lengths = {word: len(word) for word in words}
unique = {c.lower() for c in text}
total = sum(x * x for x in range(100))   # expressão geradora

Funções

def greet(name: str, greeting: str = "Olá") -> str:
    """Devolve uma saudação."""
    return f"{greeting}, {name}!"

def total(*args, **kwargs):
    return sum(args), kwargs

square = lambda x: x * x
print(greet("Ana"))                  # Olá, Ana!
print(greet("Ana", greeting="Oi"))   # Oi, Ana!
ElementoSignificado
def f(a, b=1)parâmetro com valor padrão
*argsqualquer número de argumentos posicionais (tupla)
**kwargsqualquer número de argumentos nomeados (dicionário)
returndevolve um valor; sem ele a função devolve None
lambda x: ...função anônima curta, em uma única expressão
global, nonlocalalteração de variável de um escopo externo

Não use valor padrão mutável, como em def f(items=[]): a lista é criada uma única vez e acumula valores entre as chamadas. O certo é items=None e, dentro da função, if items is None: items = [].

Funções embutidas do Python

As funções embutidas do Python estão disponíveis sem importação. São as funções principais, que aparecem em quase todo script.

FunçãoO que fazExemplo → resultado
print()exibe valoresprint(1, 2, sep="-") → 1-2
input()lê uma string do tecladoint(input())
len()tamanho de uma coleção ou stringlen("abc") → 3
type()tipo de um objetotype(3.0) → <class 'float'>
isinstance()verificação de tipoisinstance(5, int) → True
int() float() str() bool()conversão de tiposint("42") → 42
list() tuple() set() dict()criação de coleçõeslist("ab") → ['a', 'b']
range()intervalo de númeroslist(range(3)) → [0, 1, 2]
enumerate()pares (índice, elemento)list(enumerate("ab")) → [(0, 'a'), (1, 'b')]
zip()junta sequências em pareslist(zip([1, 2], "ab")) → [(1, 'a'), (2, 'b')]
sum() min() max()soma, mínimo, máximomax([3, 7, 1]) → 7
abs() round()valor absoluto e arredondamentoround(3.14159, 2) → 3.14
sorted()nova lista ordenadasorted(words, key=len, reverse=True)
reversed()iterador na ordem inversalist(reversed([1, 2])) → [2, 1]
map() filter()aplicar uma função / filtrarlist(map(str, [1, 2])) → ['1', '2']
any() all()pelo menos um / todos verdadeirosall(x > 0 for x in nums)
open()abre um arquivoopen("a.txt", encoding="utf-8")
help() dir()ajuda e lista de atributoshelp(str.split), dir(list)
id() hash()identificador e hash do objetohash("a")

A melhor referência de Python está sempre à mão: a função help() no REPL. help(dict) mostra todos os métodos do dicionário com descrição, e dir(obj) — a lista de nomes disponíveis.

Métodos de strings

Sintaxe de strings em Python: a string é imutável, e cada método devolve uma nova string. Os fatiamentos funcionam como nas listas: s[1:4], e s[::-1] inverte a string.

MétodoExemplo → resultado
upper() lower()"Py".upper() → 'PY'
capitalize() title()"hello world".title() → 'Hello World'
strip() lstrip() rstrip()" oi \n".strip() → 'oi'
split(sep)"a,b,c".split(",") → ['a', 'b', 'c']
join(iterable)"-".join(["a", "b"]) → 'a-b'
replace(old, new)"gato".replace("g", "p") → 'pato'
find() index()"hello".find("l") → 2; se não houver — -1 (no index — erro)
count()"banana".count("a") → 3
startswith() endswith()"file.py".endswith(".py") → True
isdigit() isalpha() isspace()"123".isdigit() → True
removeprefix() removesuffix()"test_a".removeprefix("test_") → 'a'
zfill() center() ljust()"7".zfill(3) → '007'
format()"{} + {}".format(1, 2) → '1 + 2'

Comandos de listas em Python

A lista é uma coleção mutável e ordenada. A maioria dos métodos altera a lista no lugar e devolve None, por isso a = a.sort() é um erro comum.

OperaçãoO que fazExemplo
append(x)adiciona no fima.append(4)
extend(iter)adiciona todos os elementosa.extend([5, 6])
insert(i, x)insere pelo índicea.insert(0, "first")
remove(x)remove a primeira ocorrência do valora.remove(3)
pop(i)remove e devolve o elemento (por padrão o último)last = a.pop()
clear()esvazia a listaa.clear()
index(x)índice da primeira ocorrênciaa.index("b")
count(x)número de ocorrênciasa.count(1)
sort()ordena no lugara.sort(key=str.lower)
reverse()inverte no lugara.reverse()
copy()cópia rasab = a.copy()
del a[i]remoção por índice ou fatiadel a[1:3]
Fatiasa[start:stop:step]a[-1] — o último, a[:3] — os três primeiros

Comandos de dicionários em Python

OperaçãoO que fazExemplo
d[key]valor pela chave; se a chave não existe — KeyErrord["name"]
get(key, default)valor ou valor reservad.get("age", 0)
d[key] = valueadicionar ou alterard["city"] = "Curitiba"
keys() values() items()chaves, valores, paresfor k, v in d.items():
update()mescla com outro dicionáriod.update({"a": 1})
d1 | d2novo dicionário unidomerged = defaults | user
pop(key, default)remove e devolve o valord.pop("tmp", None)
popitem()remove o último par adicionadod.popitem()
setdefault(key, value)devolve o valor; se a chave não existe — criad.setdefault("tags", []).append("py")
key in dverificação de existência da chaveif "name" in d:
dict.fromkeys()dicionário a partir de chaves com um só valordict.fromkeys("abc", 0)
len(d), del d[key]tamanho e remoçãodel d["old"]

Tuplas e conjuntos

OperaçãoExemplo → resultado
Desempacotamento de tuplax, y = (3, 4)
Adicionar ao conjuntos.add(5), remover — s.discard(5)
União / interseção{1, 2} | {2, 3} → {1, 2, 3}; {1, 2} & {2, 3} → {2}
Diferença{1, 2} - {2} → {1}
Remover duplicatas de uma listalist(dict.fromkeys(items)) — mantendo a ordem

Exceções e arquivos

try:
    number = int(input("Número: "))
except ValueError as err:
    print("Não é um número:", err)
else:
    print("Sucesso")
finally:
    print("Executa sempre")

with open("data.txt", "w", encoding="utf-8") as f:
    f.write("linha\n")

with open("data.txt", encoding="utf-8") as f:
    for line in f:
        print(line.rstrip())
ExceçãoQuando ocorre
SyntaxError, IndentationErrorerro de sintaxe ou de recuo
NameErrornome não definido (erro de digitação)
TypeErroroperação com tipo inadequado: "1" + 1
ValueErrortipo correto, mas valor inválido: int("abc")
IndexError, KeyErrornão existe tal índice ou chave
FileNotFoundErrorarquivo não encontrado
ZeroDivisionErrordivisão por zero

Classes

from dataclasses import dataclass

class Dog:
    def __init__(self, name: str):
        self.name = name

    def bark(self) -> str:
        return f"{self.name}: Au!"

@dataclass
class Point:
    x: float
    y: float

print(Dog("Rex").bark())   # Rex: Au!
print(Point(1, 2))         # Point(x=1, y=2)

Módulos embutidos do Python

A biblioteca padrão é instalada junto com o interpretador — basta fazer import.

MóduloPara quêExemplo
mathmatemáticamath.sqrt(16) → 4.0
randomnúmeros aleatóriosrandom.randint(1, 6), random.choice(items)
datetimedata e horadatetime.date.today()
pathlibcaminhos e arquivosPath("data").glob("*.csv")
os, syssistema, variáveis de ambiente, argumentosos.environ.get("HOME"), sys.argv
jsonleitura e escrita de JSONjson.loads(text), json.dumps(obj, ensure_ascii=False)
csvtabelas CSVcsv.DictReader(f)
collectionsCounter, defaultdict, dequeCounter("banana").most_common(1) → [('a', 3)]
itertoolscombinações e encadeamento de iteradoresitertools.chain(a, b)
reexpressões regularesre.findall(r"\d+", s)
timepausas e medição de tempotime.sleep(1), time.perf_counter()
asynciocódigo assíncronoasyncio.run(main())

No Python 3.15 apareceu a importação preguiçosa (PEP 810): lazy import pandas as pd adia o carregamento do módulo até o primeiro uso, e um script com dependências pesadas inicia bem mais rápido.

Comandos do Python no terminal

Um grupo separado de pedidos, "comandos python", são os comandos para executar o interpretador e instalar bibliotecas. No Windows, em vez de python3, costuma-se escrever python ou py.

ComandoO que faz
python3 --versionmostra a versão
python3abre o console interativo REPL (para sair — exit())
python3 script.pyexecuta um arquivo
python3 -c "print(2 + 2)"executa uma linha
python3 -m venv .venvcria um ambiente virtual
source .venv/bin/activate / .venv\Scripts\activateativa o ambiente (Linux, macOS / Windows)
python3 -m pip install requestsinstala um pacote
pip list, pip freeze > requirements.txtlista os pacotes e salva a lista
pip install -r requirements.txtinstala as dependências do arquivo
python3 -m http.server 8000servidor web simples na pasta atual
uv init, uv add requests, uv run main.pyprojeto, dependência e execução pelo gerenciador uv

Erros comuns de iniciantes

  • Comparação com = — na condição é preciso ==; um único = é atribuição.
  • Dois-pontos esquecidos depois de if, for, def geram SyntaxError.
  • Soma de string com número: "Idade: " + 25 é erro; escreva f"Idade: {25}".
  • Alterar a lista durante o percurso — percorra uma cópia for x in a[:] ou monte uma nova lista.
  • input() devolve uma string — para aritmética, envolva em int() ou float().

Resumo

A sintaxe do Python se apoia em recuos, dois-pontos e um pequeno conjunto de construções: condições, laços for e while, funções, classes. Some a isso duas dezenas de funções embutidas e os métodos de strings, listas e dicionários — e você cobrirá a maior parte das tarefas do dia a dia. Guarde a cheat sheet e, quando as tabelas ficarem familiares, passe para módulos e programação assíncrona; tudo isso é explicado passo a passo, na prática, no curso "Python 3.15: do iniciante ao profissional".

Perguntas frequentes

Quantos espaços usar para o recuo em Python?

Pelo padrão PEP 8 — 4 espaços por nível. O principal é manter o mesmo recuo em todo o bloco e não misturar com tabulações.

Qual a diferença entre lista e tupla?

A lista é mutável: pode ser ampliada e ordenada no lugar; a tupla é imutável, por isso serve como chave de dicionário e para conjuntos fixos de valores.

Como ver todos os métodos de um objeto direto no Python?

Chame dir(obj) para a lista de nomes e help(obj) para a descrição — por exemplo, help(str) mostra todos os métodos de strings.

Qual a diferença entre sort() e sorted()?

O método list.sort() ordena a própria lista e devolve None, enquanto a função sorted() devolve uma nova lista e funciona com qualquer coleção iterável.

É preciso colocar ponto e vírgula no fim da linha?

Não. O ponto e vírgula é permitido para vários comandos em uma mesma linha, mas em código normal cada instrução é escrita em uma linha nova.