我的Python代码中出现TypeError的原因是什么?

时间:2020-06-04 06:30:06

标签: python

enter image description here

这是实际的代码

age = input('How old are you? ')

# 2-8 2 dollar ticket
# 65 5 dollar ticket
# 10 dollar for everyone else
if not ((age >= 2 and age <= 8) or age >= 65):
    print('You are not a child, you pay full price')
else:
    print('You are paying a discounted price')

只是学习编码,但是我做过类似的事情,并且有相同的代码错误,然后我从正在上的在线课程中复制了一个代码,却遇到了相同的错误。

3 个答案:

答案 0 :(得分:4)

您正在尝试将字符串与整数进行比较。您需要先将字符串转换为整数:

age = int(input('How old are you? '))

要确保用户输入一个整数,可以使用它。

age = input('How old are you? ')
while not age.isdigit():
    age = input('Enter an integer. How old are you? ')
age = int(age)

答案 1 :(得分:1)

当转换为int对象时,程序可能会引发exceptions,因此请使用try除外(如果您需要在退出程序之前打印一些消息)。

age = input('How old are you? ')
try:
  age=int(age)
except ValueError:
  print('only numbers is alowed! please re run the program')
  raise

# 2-8 2 dollar ticket
# 65 5 dollar ticket
# 10 dollar for everyone else
if not ((age >= 2 and age <= 8) or age >= 65):
    print('You are not a child, you pay full price')
else:
    print('You are paying a discounted price')

答案 2 :(得分:0)

这将帮助您:

age = input('How old are you?')

# 2-8 2 dollar ticket
# 65 5 dollar ticket
# 10 dollar for everyone else
if not ((int(age) >= 2 and int(age) <= 8) or int(age) >= 65):
print('You are not a child, you pay full price')
else:
print('You are paying a discounted price')
相关问题