Python: Sintaxe e Variáveis do Python

Última atualização: 2026-09-22

Agora é hora de começar a escrever código Python de verdade. Vamos abordar as regras mais básicas: indentação, comentários e variáveis.

Palavras-chave / Instruções relacionadas:print() type() class False True for if

1. Regras de recuo

A característica mais marcante do Python — ele usa indentação para definir blocos de código, em vez de chaves {}.

TEXT 📖 Somente leitura
# ✅ Correct: consistent indentation within a block
if 3 > 1:
    print("3 is greater than 1")
    print("This line is also inside the if block")

# ❌ Error: inconsistent indentation
if 3 > 1:
    print("3 is greater than 1")
  print("Wrong indentation!")  # IndentationError
⚠️ Regra de ouro: Sempre use 4 espaços para recuo, nunca tabulações. A maioria dos editores (VS Code, PyCharm) converte automaticamente uma tecla Tab em 4 espaços.

A indentação se aplica não apenas às instruções if, mas a todos os blocos de código — loops, funções, classes e muito mais:

PYTHON
# Indentation in a for loop
for i in range(3):
    print(i)          # This line is inside the loop
    print("---")      # This line is also inside the loop
print("Done")         # This line is NOT inside the loop

2. Comentários

Os comentários são destinados a leitores humanos — o Python os ignora completamente.

(1) Comentários de uma linha: #

PYTHON
# This is a single-line comment
print("Hello")  # Comment after code

# Multi-line comments use multiple # symbols
# This is line two
# This is line three

(2) Comentários em string de várias linhas: """ """ ou ''' '''

Tecnicamente, trata-se de strings, mas são comumente usadas como comentários de várias linhas:

PYTHON
"""
This is a multi-line comment
Useful for writing function descriptions
Or temporarily blocking out large blocks of code
"""
print("The multi-line string above won't execute")

3. Variáveis

As variáveis em Python não precisam de declarações de tipo — basta atribuir um valor e pronto:

PYTHON
name = "Alice"    # str
age = 25          # int
height = 1.75     # float
is_student = True  # bool

(1) Regras para a nomenclatura de variáveis

Regra Correto ✅ Incorreto ❌
Apenas letras, dígitos e sublinhados my_name my-name
Não pode começar com um algarismo var1 1var
Case-sensitive name and Name are different -
Não pode ser uma palavra-chave - if, for, class

(2) Convenções de nomenclatura (PEP 8)

TEXT 📖 Somente leitura
# ✅ Variables: lowercase with underscores (snake_case)
user_name = "Alice"
total_price = 99.9
max_value = 100

# ✅ Constants: ALL_CAPS with underscores
PI = 3.14159
MAX_SIZE = 1024

# ❌ Not recommended
userName = "Alice"     # CamelCase (Java style)
UserName = "Alice"     # Looks like a class name

(3) Atribuição a múltiplas variáveis

O Python permite atribuir valores a várias variáveis em uma única linha:

PYTHON
# Assign multiple values at once
a, b, c = 1, 2, 3
print(a, b, c)  # 1 2 3

# Swap two variables (other languages need a temporary variable)
x, y = 10, 20
x, y = y, x
print(x, y)  # 20 10

# Assign the same value to multiple variables
m = n = p = 0
print(m, n, p)  # 0 0 0

▶ Exemplo: Tipos de variáveis e troca de valores (Dificuldade ⭐)

▶ Experimente

Resultado:

TEXT 📖 Somente leitura
Alice is 25 years old, 1.68m tall
Student status: True
Before: a=10, b=20
After: a=20, b=10
name type: <class 'str'>
age type: <class 'int'>
height type: <class 'float'>

▶ Exemplo: Exploração de Tipos de Variáveis (Dificuldade ⭐)

▶ Experimente

Saída:

TEXT 📖 Somente leitura
x = 42, tipo = int
y = 3.14, tipo = float
z = Hello, tipo = str
w = True, tipo = bool

int(y) = 3
float(x) = 42.0
str(x) = 42
bool(0) = False, bool(1) = True

var = 100, tipo = int
var = agora é uma string, tipo = str

▶ Exemplo: Truques de Atribuição de Variáveis (Dificuldade ⭐)

▶ Experimente

Saída:

TEXT 📖 Somente leitura
a=10, b=20, c=30
Antes da troca: x=100, y=200
Depois da troca: x=200, y=100
p=0, q=0, r=0
Primeiro: vermelho, Segundo: verde, Terceiro: azul

4. A função type()

Use type() para verificar o tipo de uma variável:

PYTHON
print(type(10))       # <class 'int'>
print(type(3.14))     # <class 'float'>
print(type("Hello"))  # <class 'str'>
print(type(True))     # <class 'bool'>

# Variables can change type when reassigned (dynamic typing)
x = 10
print(type(x))  # <class 'int'>
x = "Hello"
print(type(x))  # <class 'str'>  ← type changed

5. Erros comuns

TEXT 📖 Somente leitura
# IndentationError: wrong indentation
print("Too much indentation")
  print("This line has an extra space")  # ❌

# NameError: variable not defined
print(z)  # ❌ z was never assigned

# SyntaxError: invalid syntax
print("Hello)  # ❌ quotes not closed

Palavras-chave / Instruções relacionadas:print() type() class False True for if

❓ Perguntas Frequentes

P Por que o Python usa recuo em vez de chaves {}, como outras linguagens?
R O criador do Python, Guido van Rossum, acreditava que o código deveria ser, antes de tudo, legível para os seres humanos. A indentação representa visualmente a estrutura do código — seus olhos já percebem isso, então por que exigir símbolos extras? Isso garante uma formatação consistente e elimina categorias inteiras de erros (chaves ausentes, parênteses incompatíveis). É uma filosofia de design: “Bonito é melhor do que feio.”
P Misturei tabulações e espaços — meu código parece estar correto, mas gera um erro IndentationError. Por quê?
R O Python trata tabulações e espaços como caracteres diferentes. Uma linha recuada com uma tabulação parece igual a uma recuada com 4 espaços aos seus olhos, mas o Python as vê de maneira diferente. A solução: configure seu editor para converter tabulações em espaços (o VS Code faz isso por padrão). Use python -m tabnanny myfile.py para verificar se há indentação mista.
P Qual é a diferença entre a tipagem dinâmica do Python e a tipagem estática em linguagens como Java? Isso faz diferença?
R Em linguagens de tipagem estática, você declara o tipo de uma variável antecipadamente (int x = 5;) e ele não pode ser alterado. No Python, os tipos são determinados em tempo de execução e podem mudar (x = 5; x = "hello" funciona). A tipagem dinâmica é mais flexível e mais rápida de escrever, mas os erros de tipo só aparecem em tempo de execução. Para iniciantes, a tipagem dinâmica significa menos código repetitivo; para projetos grandes, a tipagem estática detecta bugs mais cedo.
P I keep getting NameError: name 'xxx' is not defined. How do I fix this?
R NameError means Python can't find a variable with that name. Common causes: ① Typo in the variable name (Python is case-sensitive — Name ≠ name); ② Using a variable before assigning it; ③ Variable was defined inside a function or loop but you're trying to access it outside. Quick fix: add print() before the error line to check what variables actually exist at that point.
P Qual é a diferença entre = e ==? Eu sempre confundo os dois.
R = é uma atribuição — ela atribui um valor a uma variável (x = 5 significa “x agora tem o valor 5”). == é uma comparação — ela pergunta “esses valores são iguais?” (x == 5 retorna True ou False). Pense em = como uma seta apontando para a esquerda (x ← 5) e em == como uma balança verificando os dois lados. Esse é um dos erros mais comuns entre iniciantes — escrever if x = 5: em vez de if x == 5:.

📖 Resumo

📝 Exercícios

  1. Escreva um código que defina três variáveis: city (nome da cidade), year (ano), score (nota 88,5) e as exiba usando print()
  2. Troque duas variáveis, a = 5 e b = 10, de modo que a passe a ser 10 e b passe a ser 5
  3. Use type() para verificar os tipos de True, "123" e 3.0
  4. Escreva propositalmente um código com um erro de indentação, veja qual erro o Python exibe e faça uma captura de tela da mensagem de erro
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%