Python 你好I';我正在努力让一个循环工作

Python 你好I';我正在努力让一个循环工作,python,Python,输出 op = {} while op != "+" or "-" or "x" or "/": op = str(input("Type in an expression: ")) print("Invalid") 这是一个简单的计算器,允许用户根据输入选择运算符类型。我已经添加了代码位,以及运行它时返回的内容。没有任何错误消息。我们将非常感谢您的帮助。另外,请告诉我有什么更好的方法可以改进这段代码。非常感谢 您不能同时进行多个比较-您必须指定

输出

    op = {}
    while op != "+" or "-" or "x" or "/":
        op = str(input("Type in an expression: "))
        print("Invalid")

这是一个简单的计算器,允许用户根据输入选择运算符类型。我已经添加了代码位,以及运行它时返回的内容。没有任何错误消息。我们将非常感谢您的帮助。另外,请告诉我有什么更好的方法可以改进这段代码。非常感谢

您不能同时进行多个比较-您必须指定
op!=重复位:
while op!=“+”和op!=“-”和op!=“x”和op!=“/”:

如果您试图检查某项内容是否在选项列表中,可以直接执行以下操作:

当op不在(“+”、“-”、“x”、“/”)中时:
op=str(输入(“输入表达式:”)
打印(“无效”)

您不能同时进行多个比较-您必须指定
op!=重复位:
while op!=“+”和op!=“-”和op!=“x”和op!=“/”:

如果您试图检查某项内容是否在选项列表中,可以直接执行以下操作:

当op不在(“+”、“-”、“x”、“/”)中时:
op=str(输入(“输入表达式:”)
打印(“无效”)
op=str(输入(“输入表达式”)#询问表达式
而op不在[“+”、“-”、“x”、“/”]:#Whilw op不属于此列表,这意味着op不是此列表中的任何元素。
打印(“无效”)#打印无效
op=str(输入(“输入表达式:”)#要求该人员再次输入运算符,直到他们正确输入运算符为止。
下面是一些应该与解释性注释一起使用的内容

第一行是必需的,因为当您运行while循环的第一次迭代时,它会在请求操作符之前首先打印invalid。 如果您颠倒了语句,并将
op=str(输入(“键入表达式”)
放在
print(“无效”)
之前,那么它将首先请求运算符,然后即使它是正确的,它也将打印无效,然后再检查它是否正确,这就是为什么我们需要第一条语句的原因。

op=str(输入(输入一个表达式:)#请求表达式
而op不在[“+”、“-”、“x”、“/”]:#Whilw op不属于此列表,这意味着op不是此列表中的任何元素。
打印(“无效”)#打印无效
op=str(输入(“输入表达式:”)#要求该人员再次输入运算符,直到他们正确输入运算符为止。
下面是一些应该与解释性注释一起使用的内容

第一行是必需的,因为当您运行while循环的第一次迭代时,它会在请求操作符之前首先打印invalid。

如果将语句颠倒,并将
op=str(输入(“键入表达式”)
放在
print(“无效”)之前
,然后它将首先请求一个运算符,然后即使它是正确的,它也将打印无效,然后再检查它是否正确,这就是为什么我们需要第一个语句。

op!='+'或'-'
不会按您认为的方式分组。它不是
op!=('+'或'-')
,而是
(op!='+')或('-')
,后者总是正确的。你能解释一下吗?或者告诉我如何才能做到这一点吗?
op!='+'或者op!='-'或者…
,或者
op不在'+-x/'
这主要是由于运算符的优先级。这里!=首先执行它将返回true或false,这取决于输入,然后如果您输入或使用任何字符串,它将返回true。While循环不会结束。它将变成无穷大谢谢你的解释。不过我有一个问题,真/假变量存储在哪里?或者它甚至是一个变量?
op!='+'或'-'
没有你认为的那样分组。它不是
op!=('+'或'-')
,而是
(op!='+')或('-'))
,后者总是正确的。你能解释一下吗?或者告诉我如何才能做到这一点吗?
op!='+'或者op!='-'或者…
,或者
op不在'+-x/'
这主要是由于运算符的优先级。这里!=首先执行它将返回true或false,这取决于输入,然后如果您输入或使用任何字符串,它将返回true。While循环不会结束。它将变成无穷大谢谢你的解释。我有一个问题,真/假变量存储在哪里?或者它甚至是一个变量?与问题中的代码类似的输出我以前从未使用过这些语句,但它们似乎按预期工作:)与问题中的代码类似的输出我从未使用过e语句,但它们似乎按预期工作:)哦,哇,这似乎工作得最好!我不太明白在开始时添加额外的输入行是如何解决问题的,但谢谢你!我会尽力理解的。谢谢你告诉我“不是”和“在“声明。我从来不知道如何真正使用它们。请阅读我的编辑。如果你需要更多的帮助,请告诉我。干杯哦,哇,这似乎效果最好!我不太明白如何添加额外的输入行在开始时设法解决这个问题,但谢谢你!我会尽力理解的。谢谢你告诉我关于“不”和“在”的陈述。我从来不知道如何真正使用它们。请阅读我的编辑。如果你需要更多的帮助,请告诉我。干杯
    Type in an expression: +
    Invalid
    Type in an expression: -
    Invalid
    Type in an expression: /
    Invalid
    Type in an expression: x
    Invalid
    Type in an expression:
    // this bit is the return i get when running the code