我在尝试和 except 块时遇到了一个奇怪的问题,我用它来捕捉无效数据输入到我正在写的一个简单的黑杰克游戏.....
def PickNumberOfPlayers():
global log
try:
inputs = int(input("How Many Players Would You Like?: "))
PlayersNumber = inputs
log.write("How Many Players Would You Like?: \n")
return PlayersNumber
except ValueError:
print("Try Typing in A Valid Number")
log.write("Try Typing in A Valid Number\n")
PickNumberOfPlayers()
然后我有一个方法 GameStart() 启动许多方法调用:
def GameStart():
global ListOfPlayers
for i in range(0, int(PickNumberOfPlayers())):
name = input("What Would You Like This Players Name To Appear As?:")
ListOfPlayers.update({name: Player(0, name)})
for key, value in ListOfPlayers.items():
value.AccountSetup()
value.Bet()
for key, value in ListOfPlayers.items():
value.PlayerDeal()
Dealer.Deal()
当我运行代码并输入正确的值(一个有效的整数)时,没有问题。当我第一次输入无效数字(字符串或字符)时,我收到相应的消息“尝试输入有效数字,然后当我输入有效整数时,我收到错误 -
for i in range(0, int(PickNumberOfPlayers())):
TypeError: int() argument must be a string or a number, not 'NoneType'
任何想法?