如果语句返回无效的语法错误,我有一个简单的逻辑。声明是:
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值的不同表中,并且原始表中充斥着空值
感谢您的帮助!
答案 0 :(得分:4)
python中的逻辑not运算符不是!
,而是not
。
你想:
if (a[1] != None and a[2] != None and not (a[3] == None and a[4] == None)):
答案 1 :(得分:2)
嗯,风格上,使用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):