#python #function #nameerror #undefined-variable
Вопрос:
Я пытаюсь создать программу, которая при вводе возраста собаки будет определять возраст в человеческих годах. Если введено отрицательное число, должно быть выведено, что отрицательное число недопустимо. Также, если ввод не является числом, он должен вывести, что ввод был неверным. мой код запускается в моем редакторе, однако в записной книжке jupyter он висит на dog_age, который не определен. Я не знаю, будет ли у переменной «a» такая же проблема.
dog_age = input("How old is your dog in years?")
try:
d_a = float(dog_age)
if d_a < 0:
print(" Your input can not be negative! ")
if (d_a >= 0) amp; (d_a <= 1):
a = d_a * 15
if d_a == 1:
a = 15
if (d_a > 1) amp; (d_a > 2):
a = (d_a * 12)
if d_a == 2:
a = 24
if (d_a > 2) amp; (d_a < 3):
a = (d_a * 9.3)
if d_a == 3:
a = 27
if (d_a > 3) amp; (d_a < 4):
a = (d_a * 8)
if d_a == 4:
a = 32
if (d_a > 4) amp; (d_a < 5):
a = (d_a * 7.2)
if d_a >= 5:
a = (d_a * 7)
except ValueError as e:
print("Your input was not valid")
round(a, 2)
a = str(a)
print("You inputted your dogs age as " dog_age " that is equal to " a " Human years old")
Комментарии:
1. Добро пожаловать в Stack Overflow! Пожалуйста, всегда публикуйте полное сообщение об ошибке с полной обратной связью .
2. Вы ничего не делаете с результатом
round(a, 2)
. Он не изменяет переменную на месте, он возвращает округленное значение. Так что это должно бытьa = round(a, 2)
3. Я не понимаю сложности этого кода. Разве это не просто человеческие годы = 7 х собачьих лет?
4. Нет никаких причин
dog_age
, по которым следует быть неопределенным после того, как вы ответите на запрос ввода.
Ответ №1:
Если вы введете возраст от 1 до 2 лет, a не будет иметь никакого значения:
if (d_a > 1) amp; (d_a > 2):
a = (d_a * 12)
Кроме if d_a == 1:
того, это уже охвачено предыдущим заявлением.
Наконец, как указал Суджей, логическим оператором в Python является and
. amp;
является побитовым оператором, который в вашем случае не нужен.
Комментарии:
1.
and
и нетamp;
?