坚持使用简单的if语句Python 3

时间:2014-12-10 12:22:37

标签: python if-statement

我对Python很陌生,而且我一直想知道在哪里提出这个问题。 好吧,我对这个小小的if语句有一点点困难。

我已将其分解,因为完整的if语句将用于此小文本RPG游戏。

health = 50

if(health > 100):
    health = 100
    print (health)

print (health)

我想做的就是让健康永远不会超过100。 但输入

>>> health = 150
>>> print (health)
health = 150

并且没有调用IF语句。 我知道对于任何有经验的Python开发人员来说这可能是一个非常简单的解决方案,但我根本无法解决它。

谢谢, 摩。

1 个答案:

答案 0 :(得分:2)

当您将if设置为150时,您的health语句不会自动运行。您需要显式再次执行它以限制您的健康值。

你可以把它变成一个功能:

def limit_health(health):
    if health < 0:
        health = 0
    if health > 100:
        health = 100
    return health

health = limit_health(150)

或者您可以使用min()来防止健康状况超过100:

health = min(health, 100)

如果您不反对使用类,请将health作为播放器的属性:

class Player(object):
     MAX_HEALTH = 100 

     def __init__(self):
         # players start out with maximum health
         self.health = self.MAX_HEALTH

     # other things players track and can do

     @property
     def health(self):
         return self._health

     @health.setter
     def health(self, new_health):
         # limit health to MAX_HEALTH at most
         self._health = min(new_health, self.MAX_HEALTH)

然后,只要您设置player.health,它就会自动受限。