保留返回“你比一些山丘老”的,即使我输入小于30为什么这个Python函数不工作?
age = raw_input("What age are you?")
def old(n):
if n >= 30:
print "You are older than some hills"
else:
print "Youth"
old(age)
保留返回“你比一些山丘老”的,即使我输入小于30为什么这个Python函数不工作?
age = raw_input("What age are you?")
def old(n):
if n >= 30:
print "You are older than some hills"
else:
print "Youth"
old(age)
因为你忘了你的输入转换为数字,因为它代表它是一个字符串,在Python 2任字符串总是大于任何数字。
使用int(raw_input("What age are you?"))
(当你尝试比较字符串和一个数字,这是一个很好的设计决策的Python 3抛出一个错误。)
的raw_input()
功能使用输入字符串,因此,您应该将输入转换为int
类型。
age = int(raw_input("What age are you?"))
def old(n):
if n >= 30:
print "You are older than some hills"
else:
print "Youth"
old(age)
这将工作。
正如其他人所说,您需要将输入转换为整数。但是,如果用户输入一个字母,该程序将引发错误。为了确保不会发生这种情况,我建议使用try和except来完成输入,这可以按如下方式完成:
age = raw_input("What age are you?")
try:
int(age)
except ValueError:
print('That is not a number')
Aaaaah yes,非常感谢 – NickJames