python - 我如何使用 .isalpha() 检测数学运算符

标签 python python-3.x

我正在尝试检测使用了哪些数学运算符,然后将该运算符分配给一个变量。这是我的代码:

start = "3x - 2 = 11"
op = "+"

for m in start:
  if m.isalpha():
    if m == "-":
      op = m
    if m == "+":
      op = m
    if m == "*":
      op = m
    if m == "/":
      op = m
print(op)

然而,尽管字符串开头有一个“-”,但它会打印“+”。有人知道为什么它不打印出“-”吗? (顺便说一句,这是 python 3)

最佳答案

假设存在唯一运算符,您可以将 start 中的字符与操作相交:

start = "3x - 2 = 11"
ops = set("+-*/")
op = list(set(start) & ops)[0] # op == '-'

如果 start 中有多个操作,则 set(start) & ops 将包含所有操作(如果没有操作,则为空)。

请注意,在您的示例中,您隐式使用了 *,因为 3x - 2 = 11 的预期含义可能是 3*x - 2 = 11

关于python - 我如何使用 .isalpha() 检测数学运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793942/

相关文章:

Python- Matplotlib 将图形标题移动到 y 轴

Python 扩展(Boost.Python & Py++)和 dlopen 混淆

python - django:从 View 返回图像数据

python - 带时间窗口的 Polars 滚动计数

python - 多元线性回归 python

django - user.has_perm 是 false,即使我可以在管理页面和 user.user_permissions 中看到它

python - PEP 3106 建议更慢的方式?为什么?

python - 为什么我没有从第二次创建对象中获得值? - Python

Sklearn CountVectorizer 的 Python 访问标签

python-3.x - 使用 pymongo 从 csv 插入数组