Ha estado mucho tiempo sin programar. Estoy haciendo una función que convierte la edad de un perro en años humanos, pero tengo algunos errores y no los supero. este es mi codigo
def calculator():
# Get dog age
age = input("Input dog years: ")
try:
# Cast to float
d_age = float(age)
# If user enters negative number, print message
if(d_age < 0):
print("Age can not be a negative number", age)
# Otherwise, calculate dog's age in human years
elif(d_age == 1):
d_age = 15
elif(d_age == 2):
d_age = 2 * 12
elif(d_age == 3):
d_age = 3 * 9.3
elif(d_age == 4):
d_age = 4 * 8
elif(d_age == 5):
d_age = 5 * 7.2
else:
d_age = 5 * 7.2 + (float(age) - 5) * 7
print("\n \t \'The given dog age", age, "is", d_age, "human years.'")
except ValueError:
print(age, "is an invalid age")
calculator()
y no entiendo por qué d_age < 0 no funciona y no entiendo por qué aparece como un error "la calculadora () no está definida". ¡Gracias por adelantado!
NOTA: Vi que ya hay una pregunta sobre esto, pero lo estoy haciendo de una manera diferente.
EDITAR: simplemente no lo hice con diccionarios, porque aún no se introdujo en el curso. Sólo estoy tratando de hacer con lo que aprendí. Gracias de cualquier manera.
Solución del problema
Parece que su código no está estructurado correctamente. Si mueve los elif
bloques y hace algunos cambios menores, funcionará. Vea abajo:
def calculator():
# Get dog age
age = input("Input dog years: ")
try:
# Cast to float
d_age = float(age)
# If user enters negative number, print message
if(d_age < 0):
print("Age can not be a negative number", age)
# Otherwise, calculate dog's age in human years
elif(d_age == 1):
d_age = 15
elif(d_age == 2):
d_age == 2 * 12
elif(d_age == 3):
d_age == 3 * 9.3
elif(d_age == 4):
d_age = 4 * 8
elif(d_age == 5):
d_age = 3 * 7.2
else:
d_age = 5 * 7.2 + (age - 5) * 7
print("\n \t \'The given dog age", age, "is", d_age, "human years.")
except ValueError:
print(age, "is an invalid age")
calculator()
No hay comentarios:
Publicar un comentario