2015-10-19 5 views
-1

У меня есть простая логика, если инструкция возвращает недопустимую синтаксическую ошибку. Примечание:python не оператор со скобкой

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, а исходная таблица замусорена с NULL

Спасибо за помощь!

ответ

3

Логическим не оператором в python является не !, а скорее not.

Вы хотите:

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

Да что сделал трюк. Спасибо вам за быстрый ответ. Придется ждать 10 минут, чтобы принять значение .... –

+0

@ shawn-mehan прав, между прочим. Мое предложение было всего лишь минимальным изменением, чтобы заставить его работать. –

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): 

 Смежные вопросы

  • Нет связанных вопросов^_^