我想制作一个询问您年龄的程序然后从那里告诉您是否可以开车。如果用户输入字母或符号而不是数字,我希望它重新提出问题。
输入:
J
错误:
Python "Programs\welcome.py", line 3, in <module>
age = str(input("How old are you?: "))
File "<string>", line 1, in <module>
NameError: name 'J' is not defined
代码:
while True:
age = str(input("How old are you?: "))
if int(age) > 15 and age.isdigit:
print ("Congradulations you can drive!")
elif int(age) < 16 and age.isdigit:
print ("Sorry you can not drive yet :(")
else:
print ("Enter a valid number")
答案 0 :(得分:4)
您似乎在Python 2解释器中运行Python 3代码。
不同之处在于Python 3中的input()
在Python 2中的行为类似于raw_input()
。
此外,age.isdigit
并未像您预期的那样调用isdigit()
函数。相反,它只是确认函数存在。
解决 请注意,通过更改条件可以进一步改善这两种实现,但这超出了问题的范围。isdigit()
问题后,您还有另一个错误:在确定它只包含数字之前,您正在执行int(age)
转化。< / p>
Python 2程序
while True:
age = raw_input("How old are you?: ")
if age.isdigit() and int(age) > 15:
print "Congradulations you can drive!"
elif age.isdigit() and int(age) < 16:
print "Sorry you can not drive yet :("
else:
print "Enter a valid number"
Python 3程序
while True:
age = input("How old are you?: ")
if age.isdigit() and int(age) > 15:
print ("Congradulations you can drive!")
elif age.isdigit() and int(age) < 16:
print ("Sorry you can not drive yet :(")
else:
print ("Enter a valid number")
答案 1 :(得分:0)