2016-02-28 40 views
5

私はPythonでall機能について理解するために検索し、私はここによると、thisが見つかりました:すべての要素がTruthy場合にのみPythonの "all"機能はどのように機能しますか?

allTrueを返します。

しかし、私はこの機能を操作するとき、それは違った演技:

'?' == True # False 
'!' == True # False 
all(['?','!']) # True 

を、入力中のすべての要素がFalseているとき、それはTrueを返すことであるのはなぜ?私はその機能を誤解したのか、それとも説明がありますか?

答えて

9

すべての要素がの場合のみ、です。

Truthy!= True

allは、実質的に、bool(something)True(繰り返し可能な場合はsomethings)であるかどうかをチェックします。

>>> "?" == True 
False 
>>> "?" == False # it's not False either 
False 
>>> bool("?") 
True 
+0

'bool(" ")'のみがFalse(文字列内)ですか?空でない文字列はすべてTrueです。 – Arman

+1

@Arman正確に。 – L3viathan

+4

@Arman: 'bool(" False ")でも' True'です! –

1

'?'と '!'空でない文字列なので真実です。

Trueと「真実」の違いがあります。真実とは、強要されると、それがTrueと評価されることを意味します。それは==からTrueまでとは異なります。

+0

Downvoter、コメントしてください。私は彼を誤解したので私の答えの後半を更新しました。 – Carcigenicate

-1

all()関数は、リスト内のすべての項目が繰り返し可能かどうかをチェックする場合に使用します。 例: x=[1,2,3,4,5] all(x) Trueを返します。

関連する問題