为什么python all()函数对元组返回true?
我知道,当iterable的所有元素都为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()为我的元组返
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
。这可能经常出现。