簡體   English   中英

為什么此表達式的計算結果為假?

[英]Why does this expression evaluate to false?

我認為range()返回數字列表。 為什么all()函數為此返回false

all(range(100))

您的range(100)包含0,並且布爾值0為False

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

而對於其他任何數字,其求值為True 該功能all將只返回True當所有參數的元素的計算結果為True ,看到它的手冊 (中if在給定的例子聲明隱含需要的每個項目的布爾值)。 此處包含0或不包含0的區別:

In [2]: all(range(10)) # 0..9
Out[2]: False

In [3]: all(range(1,10)) # 1..9
Out[3]: True

因為range生成的第一個數字是0。

>>>range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 0 is evaluated to false in boolean expressions
>>>bool(0)
True

# making range start at 1
>>>all(range(1, 100))
True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM