2016-02-07 2 views
0
if instanceType == instance_type and operatingSystem == operating_system and tenancy == tenancy_db: 
    sku_list.append(key) 

В этом операторе if эти переменные, instanceType, operatingSystem и аренда, являются входными данными пользователя, как обрабатывать не проверять, является ли какой-либо пользовательский ввод None.Как обрабатывать оператор if вместе с оператором в python?

например. if instanceType is None, я хотел бы проверить

if operatingSystem == operating_system and tenancy == tenancy_db: 
    sku_list.append(key) 

например. если операционная система отсутствует, я хотел бы проверить

if instanceType == instance_type and tenancy == tenancy_db: 
    sku_list.append(key) 

, например. если оба аренды и instanceType не Нет, я хотел бы проверить:

if operatingSystem == operating_system: 
    sku_list.append(key) 

Simliarly, это зависит от того, вводимого пользователя в None или что-то еще, есть ли другой способ сделать это, или я должен реализовать вложенными если еще?

ответ

2

Один из способов объявить вспомогательную функцию:

equal_or_none = lambda x, y: x is None or x == y 
if (
     equal_or_none(instanceType, instance_type) 
     and equal_or_none(operatingSystem, operating_system) 
     and equal_or_none(tenancy, tenancy_db)): 
    sku_list.append(key) 
1

Вы также можете использовать or оператор, который будет рассматривать None как ложь:

if (instanceType or instance_type) == instance_type and \ 
    (operatingSystem or operating_system) == operating_system and \ 
    (tenancy or tenancy_db) == tenancy_db: 
    sku_list.append(key) 
Смежные вопросы