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)15Leia 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 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)0 20| Linha | score | bonus |
|---|---|---|
| score = 10 | 10 | (ainda nenhum) |
| bonus = score * 2 | 10 | 20 |
| score = 0 | 0 | 20 |
| print(score, bonus) | 0 | 20 |
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")<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
5 23Regras 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)right leftO ú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ável | Um nome que se refere a um valor |
| atribuição | nome = valor: calcule o lado direito e depois ligue o nome |
| int | Números inteiros: 7, -3, 2026 |
| float | Números com ponto decimal: 3.5, 0.1 |
| str | Texto entre aspas |
| bool | True ou False |
| tabela de rastreamento | Uma tabela com o valor de cada variável depois de cada linha |
- O que isto mostra?
x = 4 x = x + 3 print(x) - O que isto mostra?
a = 3 b = a a = 7 print(b) - O que isto mostra?
price = 1500 count = 3 total = price * count print(total) - O que isto mostra?
n = 2 n = n * n n = n * n print(n)48162
- O que isto mostra?
print(type(7.0)) - O que isto mostra?
print("7" + "7") - Qual destes é um nome de variável válido?
- 2nd_place
- seats left
- seats_left
- for
- O que isto mostra?
a = "left" b = "right" a, b = b, a print(b) - O que isto mostra?
Score = 5 score = 9 print(Score)5914Um erro
- Depois de x = 10 e de x + 1 sozinho numa linha, quanto vale x?
- 10
- 11
- x + 1
- Um erro
- "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.
- = 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