【问题标题】:python not operator with parenthesis [duplicate]python不是带括号的运算符[重复]
【发布时间】:2016-01-17 06:53:30
【问题描述】:

我有一个简单的逻辑 if 语句返回一个无效的语法错误。声明是:

if (a[1] != None and a[2] != None and !(a[3] == None and a[4] == None)):

无效的语法是第三个!操作员。为什么这不起作用?在这种情况下我应该使用其他运算符吗?

所以逻辑本质上是:a[1] ^ a[2] ^ (a[3] v a[4])(其中这些表示具有值)。因此,获取没有 None 值的反向逻辑是:

!a[1] ^ !a[2] ^ !(a[3] ^ a[4])

我很确定我的逻辑数学是正确的,那么如何获得我需要的结果?

*背景信息:Python 2.7.10,整体代码是从 SQL Server 2008 表中提取数据,对其进行操作,然后将其插入到另一个不允许 NULL 值的表中,原始表中到处都是空值

感谢您的帮助!

【问题讨论】:

    标签: python logic brackets not-operator


    【解决方案1】:

    python 中的逻辑非运算符不是!,而是not

    你想要:

    if (a[1] != None and a[2] != None and not (a[3] == None and a[4] == None)):
    

    【讨论】:

    • 是的,成功了。谢谢你的快速反应。必须等待 10 分钟才能接受该值....
    • @shawn-mehan 是对的,顺便说一句。我的建议只是让它运行的最小改动。
    【解决方案2】:

    嗯,从风格上讲,当使用None 时,最好使用isis not 而不是==!=,所以

    if (a[1] is not None and a[2] is not None) and not (a[3] is None and a[4] is None):
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-16
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      相关资源
      最近更新 更多