当前位置 博文首页 > python空元组在all中返回结果详解

    python空元组在all中返回结果详解

    作者:小妮浅浅 时间:2021-08-07 18:25

    我们可以把需要判断的对象放在程序中,那么执行出来会有两个结果,要么是真,要么为假。我们今天所要讲的all函数就是用来判断参数的程序,根据输入参数的不同,输出True或者False的结果。下面我们就all函数进行说明、语法等方面的了解, 然后通过实例探讨空元组的返回值结果。

    1.说明:

    接受一个可迭代器对象为参数,当参数为空或者不为可迭代器对象是报错

    >>> all(2) #传入数值报错
    Traceback (most recent call last):
     File "<pyshell#9>", line 1, in <module>
      all(2)
    TypeError: 'int' object is not iterable

    如果可迭代对象中每个元素的逻辑值均为True时,返回True,否则返回False

    >>> all([1,2]) #列表中每个元素逻辑值均为True,返回True
    True
    >>> all([0,1,2]) #列表中0的逻辑值为False,返回False
    False

    如果可迭代对象为空(元素个数为0),返回True

    >>> all(()) #空元组
    True
    >>> all({}) #空字典
    True

    2.语法

    all(iterable) # iterable -- 元组或列表。

    3.参数

    iterable -- 元组或列表。

    4.返回值

    如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;

    5.实例

    >>> any(())
    False
    >>> any([])
    False
    >>> any(['',0])
    False
    >>> any(['',0,'1'])
    True
    >>> any(['',0,False])
    False

    注意:空元组、空列表返回值为True,这里要特别注意。

    如何处理从python函数返回的空(无)元组

    我有一个函数,要么返回一个元组,要么返回None.呼叫者应该如何处理这种情况?

    def nontest():
     return None
    
    x,y = nontest()
    
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    TypeError: 'NoneType' object is not iterable

    EAFP:

    try:
      x,y = nontest()
    except TypeError:
      # do the None-thing here or pass

    或者没有尝试 – 除外:

    res = nontest()
    if res is None:
      ....
    else:
      x, y = res
    jsjbwy
    下一篇:没有了