Python刽子手游戏时声明设置难度

时间:2017-04-20 14:30:24

标签: python python-3.x

我目前正在通过Al Sweigart发明自己的电脑游戏,并参与第10章(刽子手游戏)。我无法使用while循环设置难度。目前它甚至不会在我的while循环下打印语句。如果我在困难时将其更改为!='':我可以让它打印声明并接受我的输入,但它仍然没有改变难度。这是代码:

difficulty = ''
while difficulty not in 'EMH':
    print("Enter difficulty: E - easy, M - medium, H - hard.")
    difficulty = input().upper()
if difficulty == 'M':
    del HANGMAN_ART[8]
    del HANGMAN_ART[7]
if difficulty == 'H':
    del HANGMAN_ART[8]
    del HANGMAN_ART[7]
    del HANGMAN_ART[5]
    del HANGMAN_ART[3]

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您需要修复while循环有两个问题。首先是它从不首先运行,因为'' not in 'EMH'最初评估为False。第二个是您将difficulty设置为input().upper而不是input().upper()。这是一个示例修复:

difficulty = ''
while True:
    print("Enter difficulty: E - easy, M - medium, H - hard.")
    difficulty = input().upper()
    if difficulty in 'EMH':
        break

正如Jared Goguen在评论中指出的那样,你也可以保持相同的循环条件但是改变初始输入。

difficulty = 'invalid_input'
while difficulty not in 'EMH':
    ...