python nonetype转换str_无法将“NoneType”对象隐式转换为str

所以我目前正在创建一个简单的石头剪子游戏,我遇到了一个小障碍,我做了一个用户选择的功能,我只允许他们为游戏选择三个有效的选项。不过,每当他们选择不允许的东西时,我都会遇到一个奇怪的问题。这是我的职责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”而不是我分配的新的正确值?

有什么帮助,为什么会发生这种情况,我如何解决它?

谢谢

利亚姆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值