2016-02-28 11 views
5

मैं अजगर में all समारोह के बारे में समझने के लिए खोज की है, और मैं this पाया, यहाँ के अनुसार:पायथन में "सभी" फ़ंक्शन कैसे काम करता है?

allTrue वापस आ जाएगी तभी होता है जब सभी तत्वों Truthy हैं।

लेकिन जब मैं इस समारोह के साथ काम इसे दूसरे तरीके से कार्य करे, तो:

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

क्यों कि जब इनपुट के सभी तत्वों False हैं यह रिटर्न True यह क्या है? क्या मैंने इसकी कार्यक्षमता को गलत समझा या क्या कोई स्पष्टीकरण है?

उत्तर

9

केवल तभी जब सभी तत्व सत्य हैं।

सत्य! = True

all अनिवार्य रूप से जांच करता है कि bool(something)True है (iterable में सभी something रों के लिए)।

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

केवल 'बूल ("")' गलत है (स्ट्रिंग में)? हर खाली खाली स्ट्रिंग सच है? – Arman

+1

@ अर्मन बिल्कुल। – L3viathan

+4

@ अरमान: यहां तक ​​कि 'बूल ("झूठा")' सत्य 'है! –

1

'?' तथा '!' दोनों सच्चे हैं क्योंकि वे खाली खाली स्ट्रिंग्स हैं।

True और "सत्य" के बीच एक अंतर है। सच्चाई का मतलब है कि जब coerced, यह True का मूल्यांकन कर सकते हैं। यह == से True होने से अलग है।

+0

डाउनवॉटर, कृपया टिप्पणी करें। मैंने अपने जवाब के दूसरे भाग को अपडेट किया क्योंकि मैंने उसे गलत व्याख्या की थी। – Carcigenicate

-1

सभी() फ़ंक्शन का उपयोग तब किया जाता है जब हम यह जांचना चाहते हैं कि सूची में सभी आइटम पुन: प्रयोज्य हैं या नहीं। पूर्व के लिए: x=[1,2,3,4,5] all(x) यह सच हो जाएगा।

संबंधित मुद्दे