如何在while循环中添加多个条件

时间:2014-11-08 19:33:12

标签: python while-loop conditional-statements

我正在创建一个基于文本的游戏,其中包含您必须跟上的多个统计数据,例如耐力,健康等等。如果他们低于0,我会遇到问题。我知道while循环可以工作:

life = 1
while(life > 0):
    print("You are alive!")
    print("Oh no! You got shot! -1 Life")
    life-1
print("You are dead! Game Over!")

但我不知道如何用耐力,饥饿,力量等多种条件来做到这一点。

4 个答案:

答案 0 :(得分:1)

您可以使用min将它们合并为一个测试:

while min(life, health, stamina) > 0:

答案 1 :(得分:1)

由于0在Python中评估为False,因此您可以使用all

while all((life, stamina, hunger, strength)):

这将测试所有名称是否不等于零。

但是,如果您需要测试所有名称​​更大是否超过零(意味着它们可能变为负数),您可以添加generator expression

while all(x > 0 for x in (life, stamina, hunger, strength)):

答案 2 :(得分:0)

您始终可以使用andor。例如:

while (life > 0) and (health > 0) and (stamina > 0):

答案 3 :(得分:0)

您可以将if语句放入while循环中,以便在每次迭代开始时检查这些统计信息。这样你就可以单独处理每个事件。

life = 1
while(life > 0):
    if stamina < 1:
        print "out of stamina"
        break
    if hunger < 1:
        print "You died of hunger"
        break
    print("You are alive!")
    print("Oh no! You got shot! -1 Life")
    life-1
print("You are dead! Game Over!")