我的python代码有问题。它不断显示错误的状态信息

我的python代码有问题。它不断显示错误的状态信息,python,Python,我的python代码有问题。它不断显示错误的状态信息。当我在阿拉斯加州或亚利桑那州输入时,“打印信息”会打印出阿拉巴马州的信息。我正在为一个班级项目制作一个所得税计算器。我真的很感激你的帮助。我在这段代码中有50个州,但我只包含了其中的一部分。当我运行代码时,我在最终结果中键入的状态如下所示并不重要: state=输入(“输入状态:”) 状态=输入(“输入您的归档状态:”) 收入=浮动(输入(“输入您的收入:$”) 如果州==“阿拉巴马州”或“阿拉巴马州”或“AL”或“AL”: def al(

我的python代码有问题。它不断显示错误的状态信息。当我在阿拉斯加州或亚利桑那州输入时,“打印信息”会打印出阿拉巴马州的信息。我正在为一个班级项目制作一个所得税计算器。我真的很感激你的帮助。我在这段代码中有50个州,但我只包含了其中的一部分。当我运行代码时,我在最终结果中键入的状态如下所示并不重要:

state=输入(“输入状态:”)
状态=输入(“输入您的归档状态:”)
收入=浮动(输入(“输入您的收入:$”)
如果州==“阿拉巴马州”或“阿拉巴马州”或“AL”或“AL”:
def al(al_收入):
如果状态==“单一”:

如果al_收入你的问题在这一行:

if state == "Alabama" or "alabama" or "AL" or "al":
所有那些
子句都将以下字符串作为完整表达式,而不是将它们添加到equals检查中。让我们插入一些括号,看看Python是如何解释它的:

if (state == "Alabama") or ("alabama") or ("AL") or ("al"):

任何非空字符串都被视为True,因此您总是陷入第一个
if
条件。

很抱歉,这是我第一次使用stackoverflow。有些代码不在区域内。
的工作方式与您想象的不一样。我是否应该删除该或?一个(可能)正确的解决方案是['alabama','al']中的
if state.lower():
非常感谢您,我感谢您的帮助。
if (state == "Alabama") or ("alabama") or ("AL") or ("al"):