我正在创建一个基于文本的游戏,其中包含您必须跟上的多个统计数据,例如耐力,健康等等。如果他们低于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!")
但我不知道如何用耐力,饥饿,力量等多种条件来做到这一点。
答案 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)
您始终可以使用and
和or
。例如:
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!")