Pular para o conteúdo

Como usar o módulo 'mod' de forma fácil?

CodeMDD.io

Python Modulo in Practice: How to Use the % Operator

Por Jason Van Schooneveld

O Python suporta uma ampla gama de operadores aritméticos que você pode usar ao trabalhar com números em seu código. Um desses operadores é o operador módulo (%), que retorna o resto da divisão de dois números.

Neste tutorial, você aprenderá:

  • Como o módulo funciona na matemática
  • Como usar o operador de módulo do Python com diferentes tipos numéricos
  • Como o Python calcula os resultados de uma operação de módulo
  • Como substituir .__mod__() em suas classes para usá-las com o operador de módulo
  • Como usar o operador de módulo do Python para resolver problemas do mundo real

O operador de módulo do Python às vezes pode ser negligenciado. Mas ter um bom entendimento deste operador lhe dará uma ferramenta inestimável em seu arsenal de habilidades em Python.

Bônus gratuito: Clique aqui para obter um Python Cheat Sheet e aprender o básico do Python 3, como trabalhar com tipos de dados, dicionários, listas e funções do Python.

Módulo na Matemática

O termo módulo vem de um ramo da matemática chamado aritmética modular. A aritmética modular lida com aritmética de números inteiros em uma linha numérica circular que possui um conjunto fixo de números. Todas as operações aritméticas realizadas nesta linha numérica serão divididas quando elas atingirem um certo número chamado módulo.

Um exemplo clássico de módulo na aritmética modular é um relógio de doze horas. Um relógio de doze horas possui um conjunto fixo de valores, de 1 a 12. Ao contar em um relógio de doze horas, você conta até o módulo 12 e, em seguida, volta para 1. Um relógio de doze horas pode ser classificado como “módulo 12”, às vezes encurtado para “mod 12”.

O operador de módulo é usado quando você deseja comparar um número com o módulo e obter o número equivalente restrito ao intervalo do módulo.

Por exemplo, digamos que você queira determinar que horas seriam nove horas após as 8:00 da manhã. Em um relógio de doze horas, você não pode simplesmente adicionar 9 a 8 porque você teria 17. Você precisa pegar o resultado, 17, e usar o mod para obter seu valor equivalente em um contexto de doze horas:

8 horas + 9 = 17 horas
17 mod 12 = 5

17 mod 12 retorna 5. Isso significa que nove horas após as 8:00 da manhã é 5:00 da tarde. Você determinou isso pegando o número 17 e aplicando-o a um mod 12.

Python Modulo Operator Basics

O operador de módulo do Python pode ser usado com diferentes tipos numéricos, como inteiros e floats. Vamos dar uma olhada nos conceitos básicos de como usar o operador de módulo em diferentes cenários.

Modulo Operator With int

O operador de módulo pode ser usado com números inteiros para retornar o resto da divisão. Veja um exemplo:

a = 10
b = 3
resultado = a % b
print(resultado) # Saída: 1

Neste exemplo, a % b retorna o resto da divisão de 10 por 3, que é igual a 1.

Modulo Operator With float

O operador de módulo também pode ser usado com números float. No entanto, a interpretação do resultado pode ser um pouco diferente. Veja um exemplo:

a = 10.5
b = 3.2
resultado = a % b
print(resultado) # Saída: 0.8999999999999999

Neste exemplo, a % b retorna o resto da divisão de 10.5 por 3.2, que é aproximadamente igual a 0.9. No entanto, como os números float são representados internamente como aproximações numéricas, você pode encontrar resultados imprecisos ao usar o operador de módulo com floats.

Modulo Operator With a Negative Operand

O operador de módulo também pode ser usado quando um dos operandos é negativo. Veja um exemplo:

a = 10
b = -3
resultado = a % b
print(resultado) # Saída: -2

Neste exemplo, a % b retorna o resto da divisão de 10 por -3, que é igual a -2. O sinal do resultado acompanha o sinal do primeiro operando.

Modulo Operator and divmod()

O Python também oferece uma função embutida chamada divmod() que retorna o quociente e o resto da divisão de dois números. Você pode usá-la em conjunto com o operador de módulo para obter ambos os resultados de uma vez. Veja um exemplo:

a = 10
b = 3
quociente, resto = divmod(a, b)
print(resto) # Saída: 1

Neste exemplo, divmod(a, b) retorna uma tupla com o quociente e o resto da divisão de 10 por 3. Usando atribuição múltipla, podemos armazenar o resultado em duas variáveis separadas, quociente e resto.

Modulo Operator Precedence

O operador de módulo tem uma precedência relativamente baixa em relação a outros operadores aritméticos. Isso significa que ele será avaliado após operações como adição, subtração, multiplicação e divisão. Se você quiser garantir a ordem correta das operações, pode usar parênteses para definir grupos de cálculos. Veja um exemplo:

resultado = 10 + 5 % 3 * 2
print(resultado) # Saída: 12

Neste exemplo, 5 % 3 é avaliado antes da multiplicação e da adição. Portanto, a saída é 12, porque 5 % 3 é igual a 2, e 2 multiplicado por 2 é igual a 4, somado a 10 é igual a 14.