代码之家  ›  专栏  ›  技术社区  ›  Mr. Who

python 2.7上的and逻辑运算[重复]

  •  0
  • Mr. Who  · 技术社区  · 6 年前

    我在Ubuntu 16.04上使用python 2.7.12,我的代码中有这样一部分:

    for i in np.arange(0,max+1):
        ...
        if i != 1 and i != max :
                t_try[i] = (C_[i])/(2.0*D)
    

    但我从这些变化中得到了不同的结果:

    for i in np.arange(0,max+1):
        ...
        if (i != 1) and (i != max) :
                t_try[i] = (C_[i])/(2.0*D)
    

    for i in np.arange(0,max+1):
        ...
        if (i != 1 and i != max) :
                t_try[i] = (C_[i])/(2.0*D)
    

    我看不出是什么问题。

    更新: 请注意,我不是在说“布尔运算符”和“位运算符”,公认的答案是@Fernando的答案,顺便说一句,谢谢你们宝贵的时间

    2 回复  |  直到 6 年前
        1
  •  0
  •   fernand0    6 年前

    这是为了运算符的优先级: https://docs.python.org/2/reference/expressions.html 或者,并且普遍超过==,=!

        2
  •  0
  •   Peter Abolins    6 年前

    在里面 python , & 不是逻辑连接,而是位智能AND运算符。尝试更改 & and 在你的例子中。