Python 当条件满足时,While循环不会停止

Python 当条件满足时,While循环不会停止,python,string,while-loop,formatting,break,Python,String,While Loop,Formatting,Break,我想停止这个while循环,当它打印“你闻起来很好笑!”。代码确实停止了,但它没有停在正确的句子,我在这里做错了什么 while True: from time import sleep from random import randint greetings = ["Hello","Howdy","You smell funny"] title = ["Human.", "Trump!" , "Maid."] greeting = "{x}, {y}".format(x

我想停止这个while循环,当它打印“你闻起来很好笑!”。代码确实停止了,但它没有停在正确的句子,我在这里做错了什么

while True:

  from time import sleep
  from random import randint

  greetings = ["Hello","Howdy","You smell funny"]
  title = ["Human.", "Trump!" , "Maid."]
  greeting = "{x}, {y}".format(x=greetings[randint(0,2)], y=title[randint(0,2)])

  if greeting == "{x}, {y}".format(x=greetings[2], y=title[1]):
    break
  else:
    sleep(0.3)
    print(greeting)

当它点击
break
并停止循环时,它还没有打印“问候语”。只要将
打印(问候语)
移动到
之前,如果问候语==…

您可以使用标志而不是“中断”退出循环

Break_Flag=True
while Break_Flag:
    from time import sleep
    from random import randint
    greetings = ["Hello","Howdy","You smell funny"]
    title = ["Human.", "Trump!" , "Maid."]
    greeting = "{x}, {y}".format(x=greetings[randint(0,2)], y=title[randint(0,2)])
    if greeting == "{x}, {y}".format(x=greetings[2], y=title[1]):
        print(greeting,"Stop")  
        Break_Flag=False
    else:
        sleep(0.3)
        print(greeting)    

适当地缩进代码,人们将能够提供更多的帮助。无论哪种方式,问题在于,一旦问候语符合您的标准,您就不会打印它。break语句退出while循环,而
print(greeting)
永远不会执行。您可能也希望在循环之外执行导入。@JimNilsson,谢谢您的提醒,现在我已正确缩进了它们。现在我看到了问题所在,看起来我只需要添加一行,打印上面的问候语“if”就可以了。如何插入Python代码,我的代码看起来很混乱。在每行代码之前,输入4个空格。我为你编辑了这篇文章,它正在等待评论。非常感谢。另一个问题,如果我从PyCharm复制代码,每行仍然需要插入4个空格?我不知道从我的脑海中,但每次你在这里写一个答案,你可以看到你的答案预览下面进一步。如果它不是这样显示的,作为一个代码,那么添加4个空格。