【问题标题】:test/compare the precedence of an operator in Python [closed]在 Python 中测试/比较运算符的优先级 [关闭]
【发布时间】:2013-11-09 20:30:16
【问题描述】:

def has_precedence(op1,op2):

opr = ["+", "-", "*", "/", "^"]
if op1 == opr[4]:
    return True
else:
    return False
if op1 == opr[3] & op2 != opr[4]:
    return True
else:
    return False
if op1 == opr[2] & op2 != opr[3] & op2 != opr[4]:
    return True
else:
    return False
if op1 == opr[0] & op2 == opr[1]:
    return True
else:
    return False
if op1 == opr[1]:
    return False
else:
    return True

print(has_precedence('/',"-"))

我想比较两个算术运算符并返回一个布尔值,但不幸的是我所做的这个方法不起作用,我不确定为什么

【问题讨论】:

  • 对于初学者,s = +t = * 不起作用。完全没有。你真正想做什么?
  • 您是否真的比较了 字符串 '+''*'?那将给出s > t,因为ord("+") == 43ord("*") == 42,但这与运算符优先级无关。

标签: python operator-keyword operator-precedence


【解决方案1】:

Python 运算符不是对象。它们是语法。不能用变量引用它们,也不能在 Python 中比较它们。

您会改为阅读operator precedence documentation。优先级由编译器固定,而不是语言的动态方面。

编程语言运算符优先级已在很大程度上标准化;例如,Python 遵循PEMDAS order

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多