Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么python all()函数对元组返回true?_Python_Python 3.x - Fatal编程技术网

为什么python all()函数对元组返回true?

为什么python all()函数对元组返回true?,python,python-3.x,Python,Python 3.x,我知道,当iterable的所有元素都为true时,内置的all()函数返回true。但当我创建一个元组并给它2个随机整数作为元素时,它返回true。为什么呢 例如: tup = 1234 , 5678 并在其上调用all()函数: print ( all(t) ) >>> True 我很困惑,因为我认为python只能在执行布尔运算时返回true或false 但是我没有执行布尔运算,我只给出了all()2个整数。例如,我没有说2>=1。那么为什么all()为我的元组返

我知道,当iterable的所有元素都为true时,内置的
all()
函数返回true。但当我创建一个元组并给它2个随机整数作为元素时,它返回true。为什么呢

例如:

tup = 1234 , 5678
并在其上调用
all()
函数:

print ( all(t) ) 
>>> True 
我很困惑,因为我认为python只能在执行布尔运算时返回true或false


但是我没有执行布尔运算,我只给出了
all()
2个整数。例如,我没有说
2>=1
。那么为什么
all()
为我的元组返回true呢?或者这只是默认答案?

任何非零数或非空序列的计算结果都是
True

In [1]: bool(123)
Out[1]: True

In [2]: bool(0)
Out[2]: False

In [3]: bool("0")
Out[3]: True

In [4]: bool("")
Out[4]: False

In [5]: bool([0])
Out[5]: True

In [6]: bool([])
Out[6]: False
这让你可以写出优雅、简洁的陈述,比如

if score:
而不是

if score != 0:
if len(sequence) > 0:

而不是

if score != 0:
if len(sequence) > 0:

任何非零数或非空序列的计算结果均为
True

In [1]: bool(123)
Out[1]: True

In [2]: bool(0)
Out[2]: False

In [3]: bool("0")
Out[3]: True

In [4]: bool("")
Out[4]: False

In [5]: bool([0])
Out[5]: True

In [6]: bool([])
Out[6]: False
这让你可以写出优雅、简洁的陈述,比如

if score:
而不是

if score != 0:
if len(sequence) > 0:

而不是

if score != 0:
if len(sequence) > 0:
这是python中内置的all函数的定义。在您的情况下,第3行中的not元素必须返回false

这是python中内置的all函数的定义。在您的情况下,第3行中的not元素必须返回false。

假设“Python只能在执行布尔运算时返回true或false”是不正确的

Python库中定义的对象:
None
False
0
0L
0.0
0j
[]
{}
被视为
False
。任何其他值(或对象,甚至类和函数)都被认为是真的。阅读:

因此,以下两项都是正确的:

tup = 1234 , 5678
if(tup):
    print 'True'
>> True

def a_func():
    print 'This is a function'
if(a_func):
    print 'True'
>> True
all(单参数迭代器)是Python中的一个方法,如果传递给它的迭代器的所有值都为true,则返回true。 阅读:

什么是迭代器

  • 我们对语句使用
    循环列表
  • 如果我们将它与
    字符串一起使用
    ,它将在其字符上循环
  • 如果我们将它与
    字典一起使用,它会在其键上循环
  • 如果我们将它与
    文件一起使用
    ,它将在文件的行上循环
资料来源:

你自己已经给出了答案:

“我知道内置函数all()在所有 iterable的元素是正确的。”

“当执行布尔运算时,Python只能返回true或false”的假设是不正确的

Python库中定义的对象:
None
False
0
0L
0.0
0j
[]
{}
被视为
False
。任何其他值(或对象,甚至类和函数)都被认为是真的。阅读:

因此,以下两项都是正确的:

tup = 1234 , 5678
if(tup):
    print 'True'
>> True

def a_func():
    print 'This is a function'
if(a_func):
    print 'True'
>> True
all(单参数迭代器)是Python中的一个方法,如果传递给它的迭代器的所有值都为true,则返回true。 阅读:

什么是迭代器

  • 我们对语句使用
    循环列表
  • 如果我们将它与
    字符串一起使用
    ,它将在其字符上循环
  • 如果我们将它与
    字典一起使用,它会在其键上循环
  • 如果我们将它与
    文件一起使用
    ,它将在文件的行上循环
资料来源:

你自己已经给出了答案:

“我知道内置函数all()在所有 iterable的元素是正确的。”


bool(a)
对所有整数
a
求值为
True
,除了
0
可能的重复而不是
True
,请考虑truthy(对于这意味着什么的常见Python定义)。
bool(a)
对所有整数
a
求值为
True
,除了
0
可能的重复而不是
True
,请考虑truthy(对于这意味着什么的常见Python定义)。另外:
bool(None)
False
。这可能经常出现。另外:
bool(None)
False
。这可能经常出现。