¿Cuál es el resultado de % en Python?

Resuelto orange asked hace 13 años • 20 respuestas

¿Qué hace %en un cálculo? Parece que no puedo entender lo que hace.

¿Resulta un porcentaje del cálculo? Por ejemplo: 4 % 2aparentemente es igual a 0. ¿Cómo?

orange avatar Dec 14 '10 01:12 orange
Aceptado

El operador % (módulo) produce el resto de la división del primer argumento por el segundo. Los argumentos numéricos primero se convierten a un tipo común. Un argumento cero a la derecha genera la excepción ZeroDivisionError. Los argumentos pueden ser números de coma flotante, por ejemplo, 3,14%0,7 es igual a 0,34 (ya que 3,14 es igual a 4*0,7 + 0,34). El operador de módulo siempre produce un resultado con el mismo signo que su segundo operando (o cero); el valor absoluto del resultado es estrictamente menor que el valor absoluto del segundo operando [2].

Tomado de http://docs.python.org/reference/expressions.html

Ejemplo 1: 6%2 se evalúa como 0porque no hay resto si 6 se divide por 2 (3 veces).

Ejemplo 2 : 7%2se evalúa como 1porque hay un resto de 1cuando 7 se divide por 2 (3 veces).

Entonces, para resumir, devuelve el resto de una operación de división, o 0si no hay resto. Entonces 6%2significa encontrar el resto de 6 dividido por 2.

meder omuraliev avatar Dec 13 '2010 18:12 meder omuraliev

Algo fuera de tema, %también se usa en operaciones de formato de cadenas, como %=sustituir valores en una cadena:

>>> x = 'abc_%(key)s_'
>>> x %= {'key':'value'}
>>> x 
'abc_value_'

Nuevamente, fuera de tema, pero parece ser una característica poco documentada que me tomó un tiempo rastrear, y pensé que estaba relacionada con el cálculo del módulo de Pythons para el cual esta página SO ocupa un lugar destacado.

mrmagooey avatar Feb 15 '2013 00:02 mrmagooey