所以我一直在阅读Zed Shaw的“Learn Python the Hard Way”一书,它说使用超过2个if语句很糟糕。我目前正在写一个游戏,它会更有意义,我使用多个if语句:为什么认为深度超过2时认为不好?
shoot = -50
zombie_hp = -100
def zombie1(shoot, zombie_hp):
return shoot - zombie_hp
def attack():
attack = raw_input("What will you do?: ")
print zombie1(zombie_hp, shoot)
if attack == "shoot":
if shoot == -50:
print "Zombie health 50/100"
attack2 = raw_input("What will you do?: ")
print zombie1(zombie_hp, shoot)
if attack == "shoot":
print "Zombie health 0/100 (Zombie dies)"
attack()
现在为什么这样做不好if语句深深这一去3?谢谢!
做,如果攻击==拍和拍== -50:这是不是真的坏(如一切都将正常工作),但它取决于上下文真的。如果你可以避免使用大量的if语句,它会使你的代码清理器。 – 2014-12-07 04:42:42
我认为所有的语言:这只是丑陋的看看。顺便说一句,你不需要第二个'如果攻击==“射击”'因为你已经在你的第一个if语句中检查了它。 – Mikey 2014-12-07 05:01:37
这里的问题不是嵌套深度本身,它更普遍的是糟糕的代码结构。内部的'if'是外部部分的重复,这使得你容易受到攻击而不是'attack2'的攻击。此外,全局变量是一个坏主意,考虑面向对象,有一个'健康'属性的'僵尸'类实例。 – jonrsharpe 2014-12-07 09:12:28