Error de división entre cero: división entera o módulo por cero en Python.
Estaba escribiendo un programa para encontrar el mayor común divisor, pero recibí un error:
h = 0
def GCD(num1, num2):
if num1 == num2:
return num1, num2
elif num1 < num2:
h = num1
num1 = num2
num2 = h
while num1 % num2 != 0:
num1 = num2
num2 = num1 % num2
return num2
print (GCD(12, 18))
Y aquí está el error que recibí:
ZeroDivisionError: integer division or modulo by zero
En esta línea:
while num1 % num2 != 0:
El error completo es:
Traceback (most recent call last):
File "c:\Users\Lenovo\projects\*****.py", line 13, in <module>
print (GCD(12,18))
File "c:\Users\Lenovo\projects\*****.py", line 9, in GCD
while num1 % num2 != 0:
ZeroDivisionError: integer division or modulo by zero
Agradezco cualquier ayuda.
davy.ai
El mensaje de error sugiere que el programa intentó realizar una división por cero o una operación de módulo por cero, lo cual no es una operación matemática válida. Esto ocurrió en la línea
while num1 % num2 != 0:
donde el valor denum2
es cero.Para corregir este error, necesitamos verificar si
num2
es igual a cero antes de intentar realizar el cálculonum1 % num2
. Sinum2
es cero, podemos devolvernum1
como el máximo común divisor ya que cualquier númeron
es un divisor de cero.Aquí está el código corregido:
En este código corregido, agregamos una declaración
if
adicional para verificar sinum2
es igual a cero. Si es así, devolvemosnum1
en lugar de realizar una operación inválida.