Divisão inteira e resto
No módulo "Expressões aritméticas" falamos sobre operações de divisão inteira.
Vamos lembrá-los novamente:
// - divisão inteira, quando descartamos a parte fracionária como resultado da operação de divisão
% - cálculo do resto de uma divisão.
A operação restante para números negativos em O Python é executado de maneira um pouco diferente de outras linguagens de programação, como C++ ou Pascal
Em Python, a operação de cálculo do resto é realizada de acordo com regras matemáticas, ou seja, como comumente se acredita na Teoria dos Números, o resto é um número não negativo (artigo muito útil 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">aqui). O sinal do resto é igual ao sinal do divisor.
Exemplo
c = 10 // 3 # Resposta: c = 3
d = 10% 3 # Resposta: d = 1
e = -7 // 4 # Resposta: e = -2
f = -7% 4 # Resposta: f = 1
Os valores das variáveis e e f ficaram assim porque
-7 = (-2*4)+1
É preciso lembrar!
Em Python, a operação de cálculo do resto para números negativos é realizada de acordo com regras matemáticas, ou seja, \(-7\ \%\ 4 = 1 \)< br />
Na linguagem de programação Python o sinal de resto é igual ao sinal do divisor.
As operações com inteiros são muito importantes na programação. Eles precisam ser entendidos e usados corretamente. E isso requer prática!
|
Divisão inteira e resto
A necessidade de aplicar a operação de cálculo do resto da divisão é visível quando se trabalha com os dígitos de um número.
Tarefa
É fornecido um número de três dígitos. Exiba todos os dígitos desse número, começando com unidades, e obtenha um novo número formado pela permuta de unidades e centenas.
Sempre pensamos em um número como um todo, mas não esqueça que os números são formados por algarismos. Como você seleciona todos os dígitos de um número?
Na verdade, tudo é resolvido de forma bastante simples, se você se lembrar da matemática. E a matemática nos diz que qualquer número pode ser decomposto em uma soma de termos de dígitos.
Por exemplo: 365 = 3*100 + 6*10 + 5*1 .
Vemos que cada dígito é um multiplicador do termo de bit correspondente.
Mostraremos como obter cada dígito de um número em uma variável separada usando o exemplo da divisão por uma coluna pelo número 10. Tomamos o número 10, porque temos um sistema numérico decimal e, consequentemente, os termos de bit 1, 10, 100, etc.
Analisando a figura, você pode ver que
e = n% 10
# operação n % 10 - calcula o último dígito do número n
# (ou seja, o dígito das unidades) 365 % 10 = 5
d = n // 10% 10
# operação n // 10 - reduz o número em 10 vezes,
# ou seja, descarta o último dígito do número (365 // 10 = 36),
# agora podemos calcular o algarismo das dezenas,
# aplicando a operação familiar ao resultado -
# calcula o resto depois de dividir pelo número 10, 36 % 10 = 6
s = n // 100
# para obter o algarismo das centenas, basta descartar dois algarismos à direita do número,
# ou seja, duas vezes dividido por 10
# (n // 10 // 10 ou o mesmo que n // 100) 365 // 100 = 3 forte>
Tendo os dígitos do número armazenados nas variáveis, podemos fazer qualquer outro número deles multiplicando o dígito desejado pelos fatores de bit apropriados (por 1, 10, 100, etc.):
Por exemplo, a linha abaixo obterá um novo número a partir do número original n , com centenas e unidades reorganizadas:
1) o dígito das unidades (armazenado no e ) multiplique por 100 ,
2) o dígito das dezenas (armazenado na variável d ) multiplique por 10 ,
3) podemos simplesmente multiplicar o dígito das centenas por 1 , ou simplesmente pegar o valor armazenado na variável s .
Então os valores dos pontos 1, 2 e 3 devem ser simplesmente somados e obtemos um novo número:
n1 = e*100 + d*10 + s;
O programa completo ficará assim:
n = int(entrada())
e = n% 10
d = n // 10% 10
s = n // 100
print(e, d, s, e*100 + d*10 + s)
|