edubun
Português

Valores e variáveis

Na álgebra, score = score + 5 não tem solução. No Python é uma linha comum: se score valia 10, passa a valer 15.

O sinal = não significa "é igual a"

Mostre a linha score = score + 5 a um aluno de matemática e ele dirá que é falsa: nenhum número é igual a si mesmo mais cinco. Ele tem razão quanto à álgebra, e é justamente por isso que a linha confunde na primeira vez que aparece num programa. No Python, = não afirma que duas coisas são iguais. É uma instrução com direção. Primeiro se calcula o lado direito, depois se liga o nome da esquerda ao resultado.

score = 10
score = score + 5
print(score)
Saída
15

Leia como o Python lê. Linha 1: o lado direito é 10, então o nome score passa a se referir a 10. Linha 2: o lado direito é score + 5, que é 10 + 5, que é 15, então score passa a se referir a 15. O 10 antigo se foi. A linha 3 imprime aquilo a que score se refere naquele momento. Um nome que se refere a um valor assim se chama variável, e a linha que lhe dá um valor é uma atribuição.

Uma variável funciona como uma etiqueta com nome. Depois de score = score + 5, a etiqueta passa para o novo valor 15; o valor antigo, 10, fica para trás.

Uma tabela de rastreamento acompanha cada variável linha a linha

Quando várias variáveis mudam, faça uma tabela de rastreamento: uma linha por linha de código, uma coluna por variável, e anote o valor que cada variável tem depois que aquela linha é executada. É lento, mas funciona. A maioria das perguntas do tipo "por que imprime isso?" se resolve com uma tabela de rastreamento em menos de um minuto.

score = 10
bonus = score * 2
score = 0
print(score, bonus)
Saída
0 20
Linhascorebonus
score = 1010(ainda nenhum)
bonus = score * 21020
score = 0020
print(score, bonus)020

Olhe as duas últimas linhas. Mudar score para 0 não mudou bonus. Quando a linha 2 foi executada, o Python calculou 10 * 2 = 20 e deu esse número a bonus. bonus guarda o resultado, não a receita, e por isso não lembra de onde veio o 20.

Todo valor tem um tipo

Os valores vêm em espécies, chamadas tipos. Números inteiros como 42 são int. Números com ponto decimal, como 3.5, são float. Texto entre aspas é str. True e False são bool. A função embutida type diz qual deles você tem. O tipo importa porque decide o que uma operação faz: 2 + 3 soma, enquanto "2" + "3" junta duas strings em "23".

print(type(42))
print(type(3.5))
print(type("42"))
print(type(True))
print(2 + 3, "2" + "3")
Saída
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
5 23

Regras para nomes

Um nome de variável pode usar letras, dígitos e o sublinhado _, mas não pode começar com dígito nem conter espaços. Letras maiúsculas contam como letras diferentes, então Score e score são duas variáveis separadas. Algumas palavras, como if, for e True, pertencem à linguagem e não podem ser usadas como nomes. Quem programa em Python costuma escrever os nomes em minúsculas, com sublinhados entre as palavras, como lunch_price, e escolhe nomes que dizem o que o valor significa. x serve para um teste rápido, e seats_left é melhor num programa que outra pessoa vai ler.

a = "left"
b = "right"
a, b = b, a
print(a, b)
Saída
right left

O último exemplo troca dois valores numa linha. O Python calcula primeiro todo o lado direito, b, a, e só depois entrega os dois resultados a a e b. Muitas outras linguagens precisam de uma terceira variável para fazer o mesmo.

variávelUm nome que se refere a um valor
atribuiçãonome = valor: calcule o lado direito e depois ligue o nome
intNúmeros inteiros: 7, -3, 2026
floatNúmeros com ponto decimal: 3.5, 0.1
strTexto entre aspas
boolTrue ou False
tabela de rastreamentoUma tabela com o valor de cada variável depois de cada linha
  1. O que isto mostra?
    x = 4
    x = x + 3
    print(x)
  2. O que isto mostra?
    a = 3
    b = a
    a = 7
    print(b)
  3. O que isto mostra?
    price = 1500
    count = 3
    total = price * count
    print(total)
  4. O que isto mostra?
    n = 2
    n = n * n
    n = n * n
    print(n)
    • 4
    • 8
    • 16
    • 2
  5. O que isto mostra?
    print(type(7.0))
  6. O que isto mostra?
    print("7" + "7")
  7. Qual destes é um nome de variável válido?
    • 2nd_place
    • seats left
    • seats_left
    • for
  8. O que isto mostra?
    a = "left"
    b = "right"
    a, b = b, a
    print(b)
  9. O que isto mostra?
    Score = 5
    score = 9
    print(Score)
    • 5
    • 9
    • 14
    • Um erro
  10. Depois de x = 10 e de x + 1 sozinho numa linha, quanto vale x?
    • 10
    • 11
    • x + 1
    • Um erro
Erros comuns
  • "5 = x e x = 5 significam a mesma coisa." O nome precisa ficar à esquerda. 5 = x para com SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?
  • "bonus = score * 2 liga bonus a score para sempre." bonus recebe o número que o cálculo deu naquele momento. Mudanças posteriores em score não o afetam, como mostra a tabela de rastreamento.
  • "Escrever x + 1 soma um a x." Uma expressão sozinha não muda nada. Você precisa de x = x + 1, ou da forma curta x += 1.
Nota do professorO sinal = é a maior fonte de confusão herdada da matemática. Um hábito que ajuda é ler = em voz alta como "recebe" ou "passa a ser" ("score recebe score mais cinco") e nunca como "é igual a". As tabelas de rastreamento merecem tempo de aula de verdade: dê um programa de cinco linhas, peça a tabela antes de qualquer um executar, depois execute e compare. A troca a, b = b, a é um bom teste para ver se o aluno entende que todo o lado direito é calculado primeiro. Mantenha o type() à vista desde o início, porque a surpresa do "7" + "7" volta na unidade sobre entrada de dados.
Pontos-chave
  • = significa "calcule o lado direito e depois dê a ele este nome".
  • Uma tabela de rastreamento registra cada variável depois de cada linha.
  • Tipos: int, float, str, bool. type() diz qual é qual.
  • Nomes: letras, dígitos, _; sem dígito no início; maiúsculas contam.
Fontes deste curso (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Data de verificação: 2026-10-19