I just started learning Python yesterday and one of the programs I'm trying to write is a calculator. This segment of code is where I'm having problems. The while loop is supposed to stop when the user inputs any of the math operators but it still asks for input even when the user enters one the correct characters.

What do I need to do to fix this.

    op = None                                 
    while (op != "-" or op != "+" or op != "*" or op != "/"):
        op = input("Enter operator (-, +, *, /):  ")
    print(op)

推荐答案

  op = None                                 
while op not in ["-","+","*","/"]:
    op = input("Enter operator (-, +, *, /):  ")
print(op)

or

op = None                                 
while (op != "-" and op != "+" and op != "*" and op != "/"):
    op = input("Enter operator (-, +, *, /):  ")
print(op)

your code isnt working because while "op" might be equal to one of your options, its not equal to all the others, and therefore continues the loop

Python相关问答推荐

在python中按关键字拆分列表

如何使用 pyspark 对 RDD 中的值进行分组和计数以返回一个小摘要?

多进程调用 numpy 共轭期间的奇怪行为

使用透明的 TKinter 表单时,是否可以以某种方式平滑字体并消除“伪影”?

为什么使用单元素视图重复 numpy 数组访问更快?

Django:我如何从另一个数字中减去数字并在 django 中返回新值

如何测量图像中最大分割区域的中心?

如何将数据框中每个组中的行转换为列?

根据字典中的条件过滤长格式 Pandas DF

计算数据框的复合回报

将文本文件转换为字典列表

使用值列表编写字典时出现 DictWriter 问题

在 Visual Studio 代码中调试期间显示 matplotlib 图形(使用 ssh 连接)

pandas 在列值匹配时使用来自另一个数据帧的值更新数据帧

单个位置索引越界 - Python

如何在没有互联网连接的情况下运行 tox?

使用间隔 30 天的 Spark 窗口函数的 OOM

数据框到字典列表

使用 pyomo 不同的 bin 大小

在 Python 中使用 Groupby 和聚合的加权中位数