带括号的python not运算符

带括号的python not运算符,python,logic,brackets,not-operator,Python,Logic,Brackets,Not Operator,我有一个简单的逻辑if语句,返回一个无效的语法错误。声明如下: if (a[1] != None and a[2] != None and !(a[3] == None and a[4] == None)): 无效语法是第三个!操作人员有什么理由不起作用吗?在这种情况下,我应该使用另一个操作员吗 因此,逻辑基本上是:a[1]^a[2]^(a[3]va[4])(其中这些表示有值)。因此,获取noNone值的反向逻辑为: !a[1] ^ !a[2] ^ !(a[3] ^ a[4]) 我很确定我的

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

if (a[1] != None and a[2] != None and !(a[3] == None and a[4] == None)):
无效语法是第三个!操作人员有什么理由不起作用吗?在这种情况下,我应该使用另一个操作员吗

因此,逻辑基本上是:
a[1]^a[2]^(a[3]va[4])
(其中这些表示有值)。因此,获取no
None
值的反向逻辑为:

!a[1] ^ !a[2] ^ !(a[3] ^ a[4])
我很确定我的逻辑数学是正确的,那么我怎样才能得到我想要的结果呢

*背景信息:Python2.7.10,总体代码是从SQLServer2008表中提取数据,对其进行操作,然后将其插入到不允许空值的另一个表中,原始表中到处都是空值


谢谢你的帮助

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

你想要:

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

嗯,在风格上,当使用
None
时,最好使用
is
is not
而不是
=
=,所以

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

是的,就是这样。谢谢你的快速回复。必须等待10分钟才能接受该值…@shawn mehan说得对。我的建议只是使其运行的最小更改。