所以我目前正在创建一个简单的石头剪子游戏,我遇到了一个小障碍,我做了一个用户选择的功能,我只允许他们为游戏选择三个有效的选项。不过,每当他们选择不允许的东西时,我都会遇到一个奇怪的问题。这是我的职责def userChoice():
choice = input("Rock (R), Paper (P), Scissors (S)? ")
if choice.upper() == 'R' or choice.lower() == 'rock':
choice = 'Rock'
return choice
elif choice.upper() == 'P' or choice.lower() == 'paper':
choice = 'Paper'
return choice
elif choice.upper() == 'S' or choice.lower() == 'scissors':
choice = 'Scissors'
return choice
else:
print("This was an invalid option, please try again.")
userChoice()
user = userChoice()
print("Your choice is: " + user)
我遇到的问题是,当用户选择不应该选择的内容时,例如“L”,它会显示错误消息并重新启动允许他们再次选择的函数。但是,当他们下次选择(正确的值)时,我得到以下错误。
“回溯(最近一次呼叫最后一次):
文件“python”,第23行,in
TypeError:无法将“NoneType”对象隐式转换为str“
我知道如果你不返回一个值给一个函数,它会返回默认值“None”,这是我遇到的类型错误。然而,我不明白的是,为什么当我在第一个错误的值之后运行第二个错误的值,当我在其中放入一个正确的值时,它仍然采用值“None”而不是我分配的新的正确值?
有什么帮助,为什么会发生这种情况,我如何解决它?
谢谢
利亚姆