首页 > 解决方案 > 为什么我的 else 语句有时会触发,但并非总是如此?

问题描述

我正在尝试制作一个包含一些战斗的冒险游戏。

但是,那

else:
    print("The werewolf took " + str(damage) + " damage. " + str(werewolf_health) + " health remains.") 

触发器(以及它下面的代码)有时只会触发。你能帮我解释一下为什么吗?

这是代码:

def attack():
    werewolf_health = 100
    user_health = 100
    while werewolf_health > 0:
        attack = input(">").upper()
        if "ATTACK" in attack:
            damage = rand_int()
            damage2 = rand_int_werewolf()
            if damage == 20:
                print(random.choice(sword_crit))
                damage = damage * 1.5
                werewolf_health = werewolf_health - damage
                print("The werewolf took " + str(damage) + " damage. " + str(werewolf_health) + " health remains.")
                if werewolf_health <= 0:
                    print(random.choice(werewolf_death))
                    resolution()
            elif 17 <= damage <= 19:
                print(random.choice(sword_above_avg))
                werewolf_health = werewolf_health - damage
                print("The werewolf took " + str(damage) + " damage. " + str(werewolf_health) + " health remains.")
                if werewolf_health <= 0:
                    print(random.choice(werewolf_death))
                    resolution()
            elif 6 <= damage <= 16:
                print(random.choice(sword_avg))
                werewolf_health = werewolf_health - damage
                if werewolf_health <= 0:
                    print(random.choice(werewolf_death))
                    resolution()
                else:
                    print("The werewolf took " + str(damage) + " damage. " + str(werewolf_health) + " health remains.")
                    damage2 = rand_int_werewolf()
                    if damage2 == 20:
                        print(random.choice(werewolf_crit))
                        damage2 = damage2 * 1.5
                        user_health = user_health - damage2
                        print("You take " + str(damage2) + " damage. " + "Your health drops to " + str(
                            user_health) + ".")

标签: pythonif-statement

解决方案


推荐阅读