【发布时间】:2017-09-19 17:46:19
【问题描述】:
请帮忙!我不明白这里的错误。为什么我在输入 0、1 或 2 以外的数字时收到错误消息:“'int' object is not callable”?相反,它假设打印“您输入的数字不正确,请重试”并返回提问。
第二个问题:另外,我怎样才能更改代码,即使我输入字母字符,它也不会给我值错误并继续重新提出问题?谢谢!
def player_action():
player_action = int(input("Enter 0 to stay, 1 to go Up, or 2 to go Down: "))
if player_action == 0:
print ("Thank You, you chose to stay")
if player_action == 1:
print ("Thank You, you chose to go up")
if player_action == 2:
print ("Thank You, you chose to go down")
else:
print ("You have entered an incorrect number, please try again")
player_action()
player_action()
【问题讨论】:
-
你的变量名会影响函数名。您尝试调用函数
player_action(),但实际上调用的是变量player_action,它是一个int。不要为函数和变量使用相同的名称! -
另外,没有理由让这个函数递归。只需放置一个
while循环,直到您获得有效输入,然后对该输入执行某些操作。 -
哦,好的,谢谢!
-
对不起,你能告诉我如何使用 while 函数重写它吗?