2009-11-17 16 views
70

क्या पाइथन में वास्तव में एक बूलियन मान होता है? मुझे पता है कि आप कर सकते हैं:पायथन में पाइथन

checker = 1 
if checker: 
    #dostuff 

लेकिन मैं काफी व्यस्त हूं और जावा में बूलियन देखने का आनंद लेता हूं। उदाहरण के लिए:

Boolean checker; 
if (someDecision) 
{ 
    checker = true; 
} 
if(checker) 
{ 
    //some stuff 
} 

क्या पाइथन में ऐसी कोई चीज है? मुझे प्रलेखन में ऐसा कुछ नहीं दिख रहा है।

+1

के रूप में व्याख्या याद कर सकते हैं ... आप जब एक चर बनाने प्रकार की घोषणा करने की जरूरत नहीं है । बस 'चेकर = झूठा' पर्याप्त होगा। –

+7

@ डोमिनिक बौ-सम्रा: "आपको प्रकार घोषित करने की आवश्यकता नहीं है"? यह बिल्कुल सच नहीं है। मुझे लगता है कि आपको कहना चाहिए "आप संभवतः एक चर के लिए एक प्रकार घोषित नहीं कर सकते हैं।" –

उत्तर

92
checker = None # not necessary 

if some_decision: 
    checker = True 

if checker: 
    # some stuff 

[संपादित करें]

अधिक जानकारी के लिए: http://docs.python.org/library/functions.html#bool

आपका कोड, भी काम करता है के बाद से 1 जब सही पर बदल जाती है आवश्यक। असल में पाइथन के पास लंबे समय तक एक बूलियन प्रकार नहीं था (जैसा कि पुराने सी में है), और कुछ प्रोग्रामर बूलियन के बजाय पूर्णांक का उपयोग करते हैं।

+14

आमतौर पर 'if' के बजाय चेकर = (some_decision) (उदाहरण के लिए चेकर = (ए <बी)) का उपयोग करना आसान होता है। – MAK

+7

यह स्निपेट थोड़ा भ्रामक है ... आपको अभी भी परीक्षण करने से पहले "चेकर" को परिभाषित करने की आवश्यकता है। जबकि ओपी इसे पहले परिभाषित करता है, आपके उदाहरण में चेकर = कोई भी बिल्कुल जरूरी नहीं है या आपको एक UnboundLocalError – dprogramz

+0

पाइथन बूलियन पूर्णांक मिलेगा। 'ट्रू' और 'गलत' विस्तारित 'int' ऑब्जेक्ट्स के संदर्भ में अतिरेक' __str__' और '__repr__' के संदर्भ हैं। –

78

बूलियन बिल्टिन पूंजीकृत हैं: True और False

भी ध्यान रखें कि आप checker = bool(some_decision) आशुलिपि का एक सा के रूप में कर सकते हैं - bool ही कभी वापस आ जाएगी True या False

यह भविष्य में संदर्भ कि classes defining __nonzero__ or __len__True या False उन कार्यों के परिणाम के आधार पर है, लेकिन लगभग हर अन्य वस्तु के बूलियन परिणाम True हो जाएगा (None वस्तु, खाली दृश्यों के लिए छोड़कर, और संख्यात्मक शून्य) हो जाएगा के लिए पता करने के लिए अच्छा है ।

+1

अंतर्दृष्टि के लिए बहुत बहुत धन्यवाद। चूंकि लोकप्रिय वोट दूसरे जवाब में आ गया है, इसलिए मैंने बैस्टियन को 'स्वीकृत उत्तर' से सम्मानित किया। हालांकि आपका सबसे सहायक था! :) – Federer

+21

bravado: उस बिंदु को स्वीकार करने वाला बिंदु क्या आपको सबसे उपयोगी लगता है? अगर यह एक और जवाब अधिक उभरा है तो यह पूरी तरह से अप्रासंगिक है। – tzot

+2

और लोकप्रिय वोट भी इस उत्तर के साथ है। अपना वोट बदलने पर विचार करें। –

5

बूलियन प्रकार दस्तावेज में परिभाषित कर रहे हैं:
http://docs.python.org/library/stdtypes.html#boolean-values

डॉक से उद्धरित:

बूलियन मान दो लगातार वस्तुओं झूठी और यह सच है कर रहे हैं। उनका उपयोग सत्य मूल्यों का प्रतिनिधित्व करने के लिए किया जाता है (हालांकि अन्य मूल्यों को भी गलत या सत्य माना जा सकता है)। संख्यात्मक संदर्भों में (उदाहरण के लिए जब अंकगणितीय ऑपरेटर के लिए तर्क के रूप में उपयोग किया जाता है), वे क्रमशः पूर्णांक 0 और 1 की तरह व्यवहार करते हैं। बिल्ट-इन फ़ंक्शन बूल() का उपयोग किसी भी मूल्य को बूलियन में डालने के लिए किया जा सकता है, यदि मान को सत्य मान के रूप में व्याख्या किया जा सकता है (ऊपर अनुभाग सत्य मान परीक्षण देखें)।

वे क्रमशः गलत और सत्य के रूप में लिखे गए हैं।

तो जावा कोड में ब्रेसिज़, निकालने, बदलने True को true और तुम ठीक हो जाएगा :)

+0

+1, यह उस तरह का उद्धरण है जिसे मैं अपने उत्तर के लिए ढूंढ रहा था। –

10

True ... और False जाहिर है।

अन्यथा, None पूर्णांक का मूल्यांकन करता है, जैसे पूर्णांक 0 और फ्लोट 0.0 (हालांकि मैं इस तरह की फ्लोट का उपयोग नहीं करता)। इसके अलावा, खाली सूचियां [], खाली tuplets (), और खाली तार '' या "" गलत मूल्यांकन करें।

यह अपने आप को समारोह bool() साथ प्रयास करें:

bool([]) 
bool(['a value']) 
bool('') 
bool('A string') 
bool(True) # ;-) 
bool(False) 
bool(0) 
bool(None) 
bool(0.0) 
bool(1) 

आदि ..

3

हाँ, वहाँ एक bool डेटा प्रकार (जो int से विरासत और केवल दो मान होते हैं: True और False) है।

लेकिन पाइथन में प्रत्येक ऑब्जेक्ट के लिए boolean-able अवधारणा है, जिसका उपयोग bool([x]) फ़ंक्शन के दौरान किया जाता है।

और देखें: object.nonzero और boolean-value-of-objects-in-python

+0

x = bool (0) # false && x = bool (1) # true –

0

जावा के विपरीत जहां boolean flag = True घोषणा करेंगे, पायथन में आप सिर्फ घोषित myFlag = True

अजगर यह एक बूलियन चर

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