首页  >  问答  >  正文

python3.x - Python not 运算符的问题

>>> a = False + 5
5
>>> a = not(1) + 5
False

如上,将 False 直接进行运算时会作为 0 来计算。
使用逻辑运算符 not 时,not(1) 的值为 False0

但为什么直接将 not(1) 放进算术运算后再次计算的结果为 False
这和 Python 的算法逻辑有关么?

phpcn_u1582phpcn_u15822697 天前1265

全部回复(3)我来回复

  • 怪我咯

    怪我咯2017-06-22 11:54:39

    因为not不是一个函数, 是一个表达式, 不管你not(1)+5 还是 not (1+5), 它的作用也只是将后面的结果取反而已.
    例如:

    >>> not 1 + 2
    False
    
    >>> not (1 + 2)
    False
    
    >>> not (1 + 2) + 1
    False
    
    >>> (not (1 + 2)) + 1
    1

    回复
    0
  • 漂亮男人

    漂亮男人2017-06-22 11:54:39

    Python 中 not 运算符的用法Boolean Operations:

    not x

    if x is false, then True, else False

    此外,+运算符的优先级(precedence)高于+运算符的优先级(precedence)高于not运算符,所以not(1) + 5中先计算(1) + 5, 后面的(1)+5作为not运算符,所以not(1) + 5中先计算(1) + 5, 后面的(1)+5作为

    运算符的操作数. 举个例子可以看到:🎜
    not(-1)      # False
    not(-1) + 1  # True

    回复
    0
  • 天蓬老师

    天蓬老师2017-06-22 11:54:39

    雷雷

    回复
    0
  • 取消回复