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

在这个if语句中,这些变量,instanceType,operatingSystem和tenancy是用户输入,如何处理不检查用户输入是否为None。如何处理if语句和python中的运算符?

例如如果instanceType是无,我想检查

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

例如,如果operatingSystem是None,我想检查

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

例如,如果两个租户和instanceType是无,我想检查:

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

Simliarly,这取决于在无或别的东西不管用户输入,有没有其他办法可以做到这一点,或者我要实现嵌套如果别的?

回答

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)