保留返回「你比一些山丘老」的,即使我輸入小於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