所以我一直在閱讀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