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) 
            
            
                  
            
             
                    
            
                 
      
                  
           |