W3docs

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.

python— editable, runs on the server

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 reason

Instruçõ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)   # 600

Continuação explícita com uma barra invertida (\):

result = 1 + 2 + 3 \
         + 4 + 5
print(result)  # 15

Você 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 style

Comentá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   # boolean

Você pode atribuir múltiplas variáveis em uma linha:

a, b, c = 1, 2, 3
print(a, b, c)   # 1 2 3

Ou atribuir o mesmo valor a várias variáveis de uma vez:

x = y = z = 0
print(x, y, z)   # 0 0 0

Nomes 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:

TipoExemploNotas
int42Inteiro de precisão arbitrária
float3.14Ponto flutuante de 64 bits
str"hello"Sequência imutável de caracteres Unicode
boolTrue / FalseSubclasse 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
NoneTypeNoneRepresenta 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 — exponentiation

Operadores 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)    # False

Operadores lógicos

print(True and False)   # False
print(True or False)    # True
print(not True)         # False

Para 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))       # 4

Fluxo 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: B

Um 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:

python— editable, runs on the server

Use range() para iterar um número específico de vezes:

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

Use 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 blue

O loop while

O loop while se repete enquanto sua condição for True:

python— editable, runs on the server

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 imediatamente
  • continue — pula o restante da iteração atual e avança para a próxima
  • else em um loop — é executado após o loop ser concluído normalmente (ou seja, sem atingir break)
for n in range(10):
    if n == 3:
        continue   # skip 3
    if n == 6:
        break      # stop at 6
    print(n)
# 0 1 2 4 5

Funçõ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)   # 7

Valores 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 9

Para 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       yield

Se você acidentalmente usar uma palavra-chave como nome de variável, Python lança um SyntaxError:

# SyntaxError: invalid syntax
for = 10

Mó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.141592653589793

Importe nomes específicos com from ... import:

from math import sqrt, pi
print(sqrt(25))   # 5.0

Use um alias para encurtar nomes longos de módulos:

import datetime as dt
today = dt.date.today()
print(today)   # e.g. 2026-06-19

Prática

Prática
What are some general rules to follow when indenting code in Python as mentioned on w3docs.com?
What are some general rules to follow when indenting code in Python as mentioned on w3docs.com?
Was this page helpful?