首页 > 解决方案 > 尽管有输入,两个 If 语句只给出一个结果

问题描述

所以我刚开始编码,我目前的短期目标是制作一个非常小的 RPG 战斗模拟器(因此是代码片段),并且我已经学习了几天 Python。我决定练习 if 语句和函数,并创建了这部分代码。

health = 7
weak = input("Are you weak? Y/N \n")
action = input("Will you attack? Y/N \n")

def attack(wk, hp):
    if wk == "N" or "n":
        hp -= 3
    else:
        hp -= 2
    return hp


if action == "y" or "Y":
    health = (attack(weak, health))
    print(str(health))
else:
    print("No attack made")

我不认为我做错了什么,但无论这段代码总是表现得像我对健康造成了强烈打击,并在退出前返回 4。有谁知道为什么这只返回4?我已经涉足过其他语言(C# 和基于 Java 的 ModPE),它们处理大致相同的结构而没有错误,所以我很困惑。

标签: pythonpython-3.x

解决方案


推荐阅读