Operadores e Operandos¶
Operadores são símbolos especiais que representam computações como adição, multiplicação e divisão. Os valores sobre os quais o operador trabalha são chamados de operandos.
Todas as expressões abaixo são válidas em Python, cujo significado é mais ou menos óbvio:
20 + 32
hora - 1
hora * 60 + minuto
5 ** 2
(5 + 9) * (15 - 7)
Os símbolos +
, -
, e *
, e o uso de parênteses para agrupamento,
significam em Python o mesmo que na matemática. O asterisco (*
) é o símbolo
para multiplicação, e **
é o símbolo para exponenciação.
Adição, subtração, multiplicação e exponenciação fazem exatamente o que você espera.
Quando um nome de variável aparece no lugar de um operando, ela é trocada pelo valor a que
a variável se refere antes da operação ser realizada.
Por exemplo, suponha que desejamos converter 645 minutos no equivalente em horas.
Em Python 3, a divisão é indicada pelo símbolo /
, que sempre resulta em um número float.
E se agora desejássemos saber quantas horas cheias e minutos restantes havia em 645 minutos?
Para ajudar nesse tipo de questão, Python nos fornece um segundo tipo de operador de divisão.
Essa versão, chamada divisão inteira, usa o operador //
. Ela sempre trunca o resultado
para o menor inteiro mais próximo.
Olhe cuidadosamente os primeiros dois exemplos acima: observe que o resultado da divisão
real é 1.75
, mas o resultado da divisão inteira é simplesmente 1
.
Tome cuidado ao escolher o operador correto, dependendo do caso. Se você está trabalhando
com expressões onde precisa de números reais, use o operador /
. Se você deseja um
resultado inteiro, use //
.
O operador resto (modulus) trabalha em inteiros (e em expressões inteiras) e fornece
o resto da divisão inteira do primeiro operando pelo segundo. Em Python,
o operador resto é o sinal de porcentagem (%
). A sintaxe é a mesma da dos outros operadores.
Assim, 7 dividido por 3 é 2 quando usamos divisão inteira e o resto é 1.
O operador resto é surpreendentemente útil. Por exemplo, Por exemplo, você pode
verificar se um número é divisível por outro—se x % y
é zero, então
x
é divisível por y
. Além disso, você pode extrair o dígito ou dígitos
mais à direita de um número: x % 10
resulta no dígito mais à direita de x
(unidade).
De forma similar, x % 100
retorna os últimos dois dígitos (dezena e unidade).
Finalmente, retornando ao nosso exemplo dos minutos, o operador resto é extremamente útil para fazer conversões, digamos, de segundos para horas, minutos e segundos.
Se partirmos de um número qualquer de segundos (7684), o programa a seguir usa divisão inteira e resto para converter esse número para HH:MM:SS. Execute o programa passo a passo para ter certeza que você entendeu como os operadores são usados para calcular os valores corretos.
(ch02_19_codelens)
Teste seu entendimento
- 4.5
- O / operador faz uma divisão exata e retorna um float.
- 5
- O / operador faz uma divisão exata e retorna um float.
- 4
- O / operador faz uma divisão exata e retorna um float.
- 2
- O / operador faz uma divisão exata e retorna um float.
data-7-1: Qual valor é exibido pelo seguinte comando?
print(18 / 4)
- 4.25
- - O operador // faz uma divisão inteira e retorna um resultado inteiro.
- 5
- - O operador // faz uma divisão inteira e retorna um resultado inteiro, mas trunca o resultado da divisão. Ele não arredonda.
- 4
- - O operador // faz uma divisão inteira e retorna o resultado inteiro truncado.
- 2
- - O operador // faz uma divisão inteira e retorna o resultado inteiro (não o resto).
data-7-2: Qual valor é exibido pelo seguinte comando?
print(18 // 4)
- 4.25
- O operador % retorna o resto da divisão
- 5
- O operador % retorna o resto da divisão
- 4
- O operador % retorna o resto da divisão
- 2
- O operador % retorna o resto da divisão
data-7-3: Qual valor é exibido pelo seguinte comando?
print(18 % 4)