Python: random number game with input validation
我正在编写一个猜谜游戏程序,用户有机会猜出1到20之间的数字。
代码有两个问题:
第一名仍然是输入验证。
1 2 3 4 5 6 7 8 9 10 | firstGuess = userguess() def userGuess(): while True: try: guess = int(input('Enter a number between 1 and 20: ')) if 1 <= guess >= 20: return guess except ValueError: print (guess, 'is not a valid guess!') break |
我要做的是将输入验证放在循环中(同时为True :)直到用户提供良好的输入(在这种情况下是1到20之间的正数)。 如果用户输入'd'或'-5',程序应继续循环,直到给出良好的输入。 然而,这种情况并非如此。 通过调整代码,一旦输入输入错误,我就可以再次询问输入,但如果第三次输入错误,我会收到"处理此异常时发生的另一个异常"。
*删除了其他问题,@亨利伍迪是正确的,因为我没有正确使用条件。
问题与条件有关。
第一个是线:
1 | if 1 <= guess >= 20: |
在
1 | if 1 <= guess <= 20: |
接下来,条件:
1 | if guess1 == randomOne or randomTwo or randomThree: |
检查
1 | if guess1 in [randomOne, randomTwo, randomThree]: |
检查
编辑:
您可以通过获取用户输入来解决此问题,然后单独尝试将输入转换为
这是一个例子:
1 2 3 4 5 6 7 8 9 | while True: guess = input('Enter a number between 1 and 20: ') try: guess = int(guess) if 1 <= guess <= 20: return guess except ValueError: print (guess, 'is not a valid guess!') break |