我需要代码能够接受整数和字符串版本1和2.我尝试在input()上使用str()和int()但它不起作用并且只接受整数形式如果用户的输入不是1,1,2或2,我需要游戏退出。任何帮助表示赞赏。
print ('\n If you want to play the first game, enter 1.')
print ('I you want to play the second game, enter 2.')
gamechoice = str(int(input('\nPlease select the difficulty of the game: '))).lower()
if gamechoice == 1 or 'one':
Firstgame()
elif gamechoice == 2 or 'two':
secondgame()
else:
print ('\nSorry i dont undrstand')
sys.exit(0)
答案 0 :(得分:6)
根据您检查用户输入的方式,最好不要输入输入法。
首先,删除输入中的所有类型转换:
gamechoice = input('\nPlease select the difficulty of the game: ')
现在,无论用户输入什么,您所拥有的绝对是一个字符串。此时你应该做的是测试gamechoice
是否匹配预期值来切换适当的游戏。您可以在条件语句中使用in
,如下所示:
if gamechoice.lower() in ('1', 'one'):
Firstgame()
elif gamechoice.lower() in ('2', 'two'):
secondgame()
答案 1 :(得分:1)
您通常应将用户输入视为字符串,因为您无法保证他们将要执行的操作。然后在使用int(x)方法将它转换为int之前,你会使用x.isdigit()之类的东西。