Dog Age Calculator Python Undefined Name Error

314 Views Asked by At

I am trying to create a program that when a dogs age is inputted it will figure out the age in human years. If a negative number is inputted it should print that a negative number is not valid. Also if the input is not a number it should print that the input was not valid. my code runs in my editor however in the jupyter notebook it hangs on dog_age being undefined. I don't know if the variable "a" is going to also have the same issue.

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) & (d_a <= 1):
        a = d_a * 15
    if d_a == 1:
        a = 15
    if (d_a > 1) & (d_a > 2):
        a = (d_a * 12)
    if d_a == 2:
        a = 24
    if (d_a > 2) & (d_a < 3):
        a = (d_a * 9.3)
    if d_a == 3:
        a = 27
    if (d_a > 3) & (d_a < 4):
        a = (d_a * 8)
    if d_a == 4:
        a = 32
    if (d_a > 4) & (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

There are 1 best solutions below

1
Tranbi On

If you enter an age between 1 and 2, a won't have any value:

if (d_a > 1) & (d_a > 2):
        a = (d_a * 12)

Besides if d_a == 1: is already covered by the previous statement.

Finally as pointed out by Sujay, the logical operator in Python is and. & is a bitwise operator which is unnecessary in your case.