我对Python很陌生,而且我一直想知道在哪里提出这个问题。 好吧,我对这个小小的if语句有一点点困难。
我已将其分解,因为完整的if语句将用于此小文本RPG游戏。
health = 50
if(health > 100):
health = 100
print (health)
print (health)
我想做的就是让健康永远不会超过100。 但输入
>>> health = 150
>>> print (health)
health = 150
并且没有调用IF语句。 我知道对于任何有经验的Python开发人员来说这可能是一个非常简单的解决方案,但我根本无法解决它。
谢谢, 摩。
答案 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
,它就会自动受限。