Python while语句为刽子手游戏设置难度
我目前正在研究阿尔·斯维加特的《发明你自己的电脑游戏》,我正在研究第十章(刽子手游戏)。我无法使用while循环设置难度。目前它甚至没有在我的while循环下打印语句。如果我将其更改为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.")
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,这是另一个完全合理的解决方案。