Sintaxe do Python - Um Guia Completo
Aprenda a sintaxe do Python do zero: indentação, variáveis, comentários, tipos de dados, loops, condicionais e funções — com exemplos executáveis.
A sintaxe do Python é o conjunto de regras que define como um programa Python deve ser escrito para que o interpretador possa compreendê-lo e executá-lo. Ao contrário de linguagens como C ou Java, Python usa indentação por espaços em branco em vez de chaves para delimitar blocos de código, e sua leitura se assemelha muito ao inglês simples — o que é uma das principais razões pelas quais Python é uma linguagem popular para iniciantes.
Este capítulo aborda os elementos essenciais da sintaxe do Python: indentação, instruções, comentários, variáveis, tipos de dados, operadores, fluxo de controle, loops, funções e algumas armadilhas comuns.
Indentação
Em Python, a indentação não é uma preferência de estilo — ela faz parte da gramática da linguagem. O interpretador usa a indentação para determinar quais instruções pertencem ao mesmo bloco. A convenção padrão (e a imposta pela maioria dos linters) é 4 espaços por nível.
Misturar tabulações e espaços no mesmo arquivo causa um IndentationError. Use um ou outro de forma consistente — o guia de estilo do Python (PEP 8) recomenda espaços.
Erros comuns de indentação
# IndentationError: expected an indented block
if True:
print("oops") # missing indentation# IndentationError: unexpected indent
x = 1
y = 2 # indented for no reasonInstruções e Continuação de Linha
Cada instrução Python normalmente ocupa uma linha e não termina com ponto e vírgula (embora um ponto e vírgula seja tecnicamente válido). Quando uma instrução é muito longa, você pode quebrá-la em várias linhas de duas formas.
Continuação implícita dentro de colchetes — qualquer (, [ ou { aberto permite continuar na próxima linha:
total = (
100
+ 200
+ 300
)
print(total) # 600Continuação explícita com uma barra invertida (\):
result = 1 + 2 + 3 \
+ 4 + 5
print(result) # 15Você também pode colocar várias instruções em uma linha com ponto e vírgula, mas isso é desencorajado:
x = 1; y = 2; print(x + y) # works, but avoid this styleComentários
Comentários explicam a intenção e são ignorados pelo interpretador. Python tem dois tipos.
Comentários de linha única
Inicie um comentário com #. Tudo após # naquela linha é ignorado:
# Calculate the area of a circle
radius = 5
area = 3.14159 * radius ** 2 # ** is the exponentiation operator
print(area)Comentários de múltiplas linhas (docstrings)
Python não tem uma sintaxe dedicada para comentários em bloco. A convenção é usar strings com aspas triplas. Quando colocadas no início de uma função, classe ou módulo, elas se tornam docstrings — acessíveis em tempo de execução via help():
def greet(name):
"""Return a greeting for the given name.
Args:
name (str): The person's name.
"""
return f"Hello, {name}!"
print(greet("Alice")) # Hello, Alice!Variáveis e Atribuição
Uma variável é criada no momento em que você atribui um valor a ela. Python é dinamicamente tipado, portanto você não declara um tipo:
x = 10 # integer
pi = 3.14 # float
name = "Alice" # string
active = True # booleanVocê pode atribuir múltiplas variáveis em uma linha:
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3Ou atribuir o mesmo valor a várias variáveis de uma vez:
x = y = z = 0
print(x, y, z) # 0 0 0Nomes de variáveis diferenciam maiúsculas de minúsculas (age, Age e AGE são três variáveis diferentes). Para mais informações sobre regras e convenções de nomenclatura, consulte o capítulo Variáveis Python.
Tipos de Dados
Cada valor em Python tem um tipo. Os tipos integrados mais comuns são:
| Tipo | Exemplo | Notas |
|---|---|---|
int | 42 | Inteiro de precisão arbitrária |
float | 3.14 | Ponto flutuante de 64 bits |
str | "hello" | Sequência imutável de caracteres Unicode |
bool | True / False | Subclasse de int (True == 1, False == 0) |
list | [1, 2, 3] | Sequência ordenada e mutável |
tuple | (1, 2, 3) | Sequência ordenada e imutável |
dict | {"a": 1} | Mapeamento de chave-valor |
set | {1, 2, 3} | Coleção não ordenada de valores únicos |
NoneType | None | Representa a ausência de um valor |
Verifique o tipo de qualquer valor com type():
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hello")) # <class 'str'>
print(type(True)) # <class 'bool'>
print(type(None)) # <class 'NoneType'>Para uma análise mais aprofundada dos tipos, consulte o capítulo Tipos de Dados Python.
Operadores
Python suporta várias categorias de operadores.
Operadores aritméticos
a, b = 10, 3
print(a + b) # 13 — addition
print(a - b) # 7 — subtraction
print(a * b) # 30 — multiplication
print(a / b) # 3.3333... — true division (always returns float)
print(a // b) # 3 — floor division
print(a % b) # 1 — modulo (remainder)
print(a ** b) # 1000 — exponentiationOperadores de comparação
Operadores de comparação retornam True ou False:
print(5 == 5) # True
print(5 != 3) # True
print(5 > 3) # True
print(5 < 3) # False
print(5 >= 5) # True
print(5 <= 4) # FalseOperadores lógicos
print(True and False) # False
print(True or False) # True
print(not True) # FalsePara uma referência completa com operadores de atribuição, bit a bit e identidade, consulte o capítulo Operadores Python.
Strings
Strings são sequências de caracteres Unicode. Podem ser delimitadas por aspas simples, aspas duplas ou aspas triplas:
s1 = "Hello, World!"
s2 = 'Hello, World!'
s3 = """This string
spans multiple lines."""f-strings (literais de string formatadas)
Introduzidas no Python 3.6, as f-strings são a forma recomendada de incorporar expressões dentro de strings:
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
# My name is Alice and I am 30 years old.Operações comuns com strings
s = "python"
print(s.upper()) # PYTHON
print(s.capitalize()) # Python
print(len(s)) # 6
print(s[0]) # p (indexing)
print(s[1:4]) # yth (slicing)
print(s + " rocks") # python rocks (concatenation)Listas
Uma lista é uma coleção ordenada e mutável. Os itens podem ser de tipos mistos:
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[-1]) # cherry (negative index = from end)
fruits.append("date")
print(fruits) # ['apple', 'banana', 'cherry', 'date']
print(len(fruits)) # 4Fluxo de Controle
A instrução if / elif / else
Use if, elif (else-if) e else para ramificar com base em condições:
score = 75
if score >= 90:
grade = "A"
elif score >= 75:
grade = "B"
elif score >= 60:
grade = "C"
else:
grade = "F"
print(f"Grade: {grade}") # Grade: BUm ponto importante: ao contrário de muitas linguagens, Python não possui sintaxe switch/case antes do Python 3.10. Para múltiplas condições na mesma variável, use cadeias de elif ou uma busca em dicionário. O Python 3.10+ introduziu a instrução match como uma alternativa de correspondência de padrões estruturais.
Para uma referência completa, consulte o capítulo Python If Else.
O loop for
O loop for itera sobre qualquer iterável — uma lista, string, range ou outra sequência:
Use range() para iterar um número específico de vezes:
for i in range(5):
print(i) # 0, 1, 2, 3, 4Use enumerate() quando precisar tanto do índice quanto do valor:
colors = ["red", "green", "blue"]
for index, color in enumerate(colors):
print(index, color)
# 0 red
# 1 green
# 2 blueO loop while
O loop while se repete enquanto sua condição for True:
Sempre certifique-se de que a condição eventualmente se tornará False, caso contrário você terá um loop infinito.
break, continue e else em loops
break— sai do loop imediatamentecontinue— pula o restante da iteração atual e avança para a próximaelseem um loop — é executado após o loop ser concluído normalmente (ou seja, sem atingirbreak)
for n in range(10):
if n == 3:
continue # skip 3
if n == 6:
break # stop at 6
print(n)
# 0 1 2 4 5Funções
Funções permitem que você empacote lógica reutilizável sob um nome. Defina uma função com def:
def add(a, b):
"""Return the sum of a and b."""
return a + b
result = add(3, 4)
print(result) # 7Valores padrão de parâmetros
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet("Alice") # Hello, Alice!
greet("Bob", "Hi") # Hi, Bob!Retornando múltiplos valores
As funções Python podem retornar múltiplos valores como uma tuple:
def min_max(numbers):
return min(numbers), max(numbers)
low, high = min_max([3, 1, 4, 1, 5, 9])
print(low, high) # 1 9Para mais detalhes, consulte o capítulo Funções Python.
Palavras-chave
Python reserva certas palavras para a própria linguagem. Você não pode usá-las como nomes de variáveis:
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yieldSe você acidentalmente usar uma palavra-chave como nome de variável, Python lança um SyntaxError:
# SyntaxError: invalid syntax
for = 10Módulos e Importações
O código Python é organizado em módulos (arquivos .py). Você importa o conteúdo de um módulo com import:
import math
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.141592653589793Importe nomes específicos com from ... import:
from math import sqrt, pi
print(sqrt(25)) # 5.0Use um alias para encurtar nomes longos de módulos:
import datetime as dt
today = dt.date.today()
print(today) # e.g. 2026-06-19