Operadores
Todo cálculo e toda condição de um programa são feitos com operadores. Aqui estão todos os que a disciplina usa: para que cada um serve, em que ordem o Python resolve e onde a turma mais erra.
Nesta lição0 de 6 vistas
Veja o Python resolver, um operador por vez
Digite uma expressão com números e operadores. O Python resolve uma operação de cada vez, respeitando a precedência.
- 110 + 7 % 3 * 2a expressão original
- 210 + 1 * 27 % 3 = 1 (resto)
- 310 + 21 * 2 = 2 (multiplicação)
- 41210 + 2 = 12 (soma)
Aritméticos: fazem contas
+, -, *, /, //, % e **| Operador | Nome | Exemplo | Para que serve nas questões |
|---|---|---|---|
+ | soma | 7 + 2 → 9 | acumular (soma = soma + x), juntar textos ('a' + 'b') |
- | subtração | 7 - 2 → 5 | idade (ano atual - nascimento), quanto falta, descer um contador |
* | multiplicação | 7 * 2 → 14 | produto (fatorial), percentual (salario * 0.15), repetir texto ('*' * 3) |
/ | divisão | 7 / 2 → 3.5 | média, preço por unidade. Sempre dá decimal: 6 / 2 → 3.0 |
// | divisão inteira | 7 // 2 → 3 | quantas vezes cabe, apagar o último algarismo (n // 10), cédulas |
% | resto | 7 % 2 → 1 | par ou ímpar, divisível, pegar o último algarismo (n % 10) |
** | potência | 7 ** 2 → 49 | quadrado, raiz (x ** 0.5), fórmulas como o IMC |
Os três de divisão confundem mais. Com 7 e 2: / dá 3.5, // dá 3 (quantas vezes o 2 cabe) e % dá 1 (o que sobra). A lição Por que % e // funcionam mostra a conta armada.
Comparação: fazem perguntas
O resultado é sempre True ou FalseO resultado de uma comparação é sempre True ou False. É isso que o if e o while leem.
| Operador | Pergunta | Exemplo |
|---|---|---|
== | é igual? | 5 == 5 → True |
!= | é diferente? | 5 != 3 → True |
< | é menor? (o igual fica de fora) | 5 < 5 → False |
> | é maior? (o igual fica de fora) | 5 > 5 → False |
<= | é menor ou igual? (o igual entra) | 5 <= 5 → True |
>= | é maior ou igual? (o igual entra) | 5 >= 5 → True |
| O enunciado diz | Em Python |
|---|---|
| não pode passar de 30% | <= limite |
| acima de 2000 | > 2000 |
| até 400 (inclusive) | <= 400 |
| de 18.5 até abaixo de 25 | >= 18.5 and < 25 |
| menor do que ele mesmo | < n |
| 60 anos ou mais | >= 60 |
O erro mais comum: um = só guarda um valor (x = 5). Dois, ==, perguntam se é igual (if x == 5:). Escrever if x = 5: é erro.
Lógicos: juntam perguntas
and, or e notand
print(True and True)print(True and False)print(False and False)
Verdadeiro só se as duas forem verdadeiras. Entra na festa se tiver ingresso e for maior de idade.
or
print(True or True)print(True or False)print(False or False)
Verdadeiro se pelo menos uma for verdadeira. Paga meia se for estudante ou idoso.
not
print(not True)print(not False)
Inverte: verdadeiro vira falso e vice-versa. Continua enquanto não achou.
Onde aparecem: bissexto ((ano % 4 == 0 and ano % 100 != 0) or ano % 400 == 0), triângulo (três condições com and), múltiplos de A ou de B, parar sem break (while i <= n and not achou).
Armadilha: não dá para escrever x > 5 and < 10: cada lado do and precisa ser uma pergunta completa. Escreva x > 5 and x < 10, ou 5 < x < 10.
Atribuição: guardam valores
A forma curta e a longa fazem a mesma coisa| Forma curta | É o mesmo que | Uso típico |
|---|---|---|
x = 5 | guarda 5 em x | criar ou trocar o valor |
soma += x | soma = soma + x | acumulador de soma |
cont += 1 | cont = cont + 1 | contador, incremento do laço |
i -= 2 | i = i - 2 | descer de 2 em 2 (fatorial duplo) |
fat *= i | fat = fat * i | acumulador de produto |
n //= 10 | n = n // 10 | apagar o último algarismo |
a, b = b, a + b | troca os dois ao mesmo tempo | Fibonacci sem variável auxiliar |
Na prova, use a forma que você lê com mais segurança.
Precedência
Quem o Python resolve primeiroDe cima para baixo. No mesmo degrau, da esquerda para a direita. Parênteses passam na frente de tudo.
| Ordem | Operadores | Exemplo |
|---|---|---|
| 1º | ( ) | (2 + 3) * 4 → 20 |
| 2º | ** | 2 * 3 ** 2 → 18 |
| 3º | - (sinal) | -2 ** 2 → -4 (a potência vem antes do sinal) |
| 4º | * / // % | 2 + 3 * 4 → 14 |
| 5º | + - | 10 - 2 - 3 → 5 |
| 6º | == != < > <= >= | 1 + 1 == 2 → True |
| 7º | not | not 1 > 2 → True |
| 8º | and | True or False and False → True |
| 9º | or | o último a ser resolvido |
Na dúvida, ponha parênteses. Eles não mudam nada quando a ordem já estava certa e deixam a conta mais fácil de ler, para você e para o professor.
Treine: quanto dá?
Faça de cabeça e confiraAntes de rodar, preveja
Para True e False, escreva com a primeira letra maiúscula.
2 + 3 * 4(2 + 3) * 410 - 4 - 22 ** 3 * 217 // 517 % 58 / 2-3 ** 25 >= 53 != 34 > 2 and 1 > 34 > 2 or 1 > 3not 10 % 2 == 010 > 5 > 1
Erros que mais aparecem na prova
6 erros= no lugar de ==
if x = 5: é erro. Comparar é ==.
/ no lugar de //
1345 / 10 dá 134.5, e o laço de dígitos nunca termina direito. Para apagar algarismo, //.
Texto com número
input() devolve texto. Sem int(), "5" + 1 é erro e "5" * 3 dá "555".
A fronteira
< e <= só diferem no valor exato do limite. É justamente o valor que o professor testa.
Sinal e potência
-2 ** 2 dá -4. Para elevar o -2, escreva (-2) ** 2.
and trocado por or
Com or, basta uma condição. Leia a frase do enunciado: “e” é and, “ou” é or.