在python中如何处理if语句和and运算符?

2024-06-12 16:01:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在这个if语句中,instanceType、operatingSystem和tenancy这些变量都是用户输入,如何处理不检查任何用户输入是否为None。你知道吗

例如,如果instanceType为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)

例如,如果tenancy和instanceType都为None,我想检查:

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

同样地,这取决于用户输入是无还是其他方式,是否有其他方法可以做到这一点,或者我必须实现嵌套的if-else?你知道吗


Tags: andinstancekey用户nonedbifoperating
2条回答

也可以使用or运算符,它将None视为false:

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)

一种方法是声明助手函数:

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)

相关问题 更多 >