Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python while语句为刽子手游戏设置难度_Python_Python 3.x - Fatal编程技术网

Python while语句为刽子手游戏设置难度

Python while语句为刽子手游戏设置难度,python,python-3.x,Python,Python 3.x,我目前正在研究阿尔·斯维加特的《发明你自己的电脑游戏》,我正在研究第十章(刽子手游戏)。我无法使用while循环设置难度。目前它甚至没有在我的while循环下打印语句。如果我将其更改为while难度!='':我可以让它打印语句并接受我的输入,但它仍然不能改变难度。代码如下: difficulty = '' while difficulty not in 'EMH': print("Enter difficulty: E - easy, M - medium, H - hard.")

我目前正在研究阿尔·斯维加特的《发明你自己的电脑游戏》,我正在研究第十章(刽子手游戏)。我无法使用while循环设置难度。目前它甚至没有在我的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]

感谢您的帮助。

您的
while
循环有两个问题需要解决。首先,它从一开始就不会运行,因为不在“EMH”中的
'
最初的计算结果为
False
。第二个问题是您正在将
难度设置为
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':
    ...

while
循环有两个问题需要解决。首先,它从一开始就不会运行,因为不在“EMH”中的
'
最初的计算结果为
False
。第二个问题是您正在将
难度设置为
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':
    ...

您可能希望
input().upper()
任何字符串中以
''开头的缩进不正确
计算结果也为True。我已修复了.upper()错误,不幸的是,这并没有修复程序。我按照书中的缩进,你能解释一下应该怎样缩进吗?感谢
难度
变量在
while
循环之后包含什么?您的问题是,它没有输入任何一个条件,对吗?您可能想要
input().upper()
它没有正确地缩进,以任何字符串中的
''开头
也计算为True。我已经修复了.upper()错误,不幸的是,这没有修复程序。我按照书中的缩进,你能解释一下应该怎样缩进吗?感谢
难度
变量在
while
循环之后包含什么?你的问题到底是什么,它没有进入任何一个条件,对吗?我不同意改变循环的条件并使用
break
。保留原始条件并将
难度
的初始化更新为
难度='invalid_input'
@JaredGoguen可能更好,这是另一个完全合理的解决方案。我不同意更改循环的条件并使用
中断
。最好保持原始条件,并将
难度
的初始化更新为
难度='invalid_input'
@JaredGoguen,这是另一个完全合理的解决方案。