Python: 如果 while 条件在循环期间发生变化,如何在 运行 时结束 while 循环?

Python: How to end a while loop while it is running if the while condition changes during the loop?

我需要一些关于我正在尝试制作的基于文本的游戏的代码方面的帮助。我的游戏使用生命值,代码以 "while health>0:" 开始,在游戏的另一点,当生命值最终 =0 时,循环仍在继续。如何在 health=0 时结束循环,而不完成整个循环。

这是一个例子:

health=100
while health>0:
  print("You got attacked")
  health=0
  print("test")

当 health=0 时代码不应该停止,并且不打印 "test" 吗?当 health=0 时如何让它停止?我编写的代码会根据用户的操作扣除健康值,因此 health=0 的时间可能会有所不同。我想在 health=0 时结束代码任何帮助将不胜感激。

The break statement, like in C, breaks out of the smallest enclosing for or while loop.

仅在每次迭代 开始时评估条件。它不会在迭代的中间被检查(例如,只要您将health设置为零)。

要显式退出循环,请使用 break:

while health>0:
  ...
  if some_condition:
    break
  ...

你应该使用 'break' 语句跳出循环

health=100
while health>0:
  print("You got attacked")
  # decrement the variable according to your requirement inside the loop
  health=health-1 
  if health==0:
    break
  print("test")

更简洁的实施

health = 100
while True:
    if (health <= 0): break
    print ("You got attacked!")
    health = 0
    print ("Testing!")

输出:

You got attacked!
Testing!

在 while 循环中,只有指定某种条件才能让代码停止。在这种情况下,health 总是大于 0,所以它一直打印“you got attacked”。 您需要使健康变量减少直到它变为 0 才能打印“测试”。因此;

  `   health=100
      while health>0:
        print("You got attacked")
        health-=5
        if health==0:
         print("test")
         break`

另一种可能是这个;

    `  health=100
      if health>0:
       print("You got attacked")
      if health==0:
       print("test") `