while循环在满足条件时不停止

While loop does not stop when the condition is met

我想在它打印 "You smell funny Trump!" 时停止这个 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)

它还没有打印 "greeting",当它到达 break 并停止循环时。只需将 print(greeting) 移动到 if 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)