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