2012-05-11 15 views
16

मैं ऐसे php खाली समारोह (http://php.net/manual/en/function.empty.php) जो जाँच करता है, तो चर निम्नलिखित मानदंड के साथ रिक्त है के रूप में यदि अजगर किसी भी कार्य होता है सोच रहा हूँपाइथन में कोई चर खाली होने पर कैसे जांचें?

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
+0

आप क्यों पूछते हैं? –

उत्तर

18

हां, bool। यह बिल्कुल वैसा ही नहीं है - '0'True है, लेकिन None, False, [], 0, 0.0, और "" सभी False हैं।

bool परोक्ष प्रयोग किया जाता है जब आप एक if या while बयान, सशर्त अभिव्यक्ति है, या एक बूलियन ऑपरेटर के साथ की तरह एक शर्त में एक वस्तु का मूल्यांकन।

आप संख्याओं वाले पीएचपी करता है के रूप में, आप की तरह कुछ कर सकते हैं तार को संभालने के लिए चाहता था, तो:

def empty(value): 
    try: 
     value = float(value) 
    except ValueError: 
     pass 
    return bool(value) 
4

देखें अनुभाग 5.1:

http://docs.python.org/library/stdtypes.html

किसी भी वस्तु में उपयोग के लिए, सच मूल्य के लिए परीक्षण किया जा सकता है, तो एक या जब हालत या नीचे बूलियन आपरेशन के संकार्य के रूप में। , 0, 0L, 0.0, 0j

None

False

किसी भी सांख्यिक प्रकार का शून्य, उदाहरण के लिए: निम्न मान गलत माना जाता है।

कोई खाली अनुक्रम, उदाहरण के लिए, '', (), []

कोई खाली मैपिंग, उदाहरण के लिए, {}

उपयोगकर्ता परिभाषित वर्गों के उदाहरण, यदि कक्षा __nonzero__() या __len__() विधि को परिभाषित करती है, जब वह विधि पूर्णांक शून्य या बूल मान False देता है। [1]

अन्य सभी मूल्यों को सत्य माना जाता है - इसलिए कई प्रकार की वस्तुएं हमेशा सत्य होती हैं।

संचालन और बिल्ट-इन कार्य है कि एक बूलियन परिणाम हमेशा सच के लिए 0 या False वापसी झूठी और 1 या True के लिए, जब तक अन्यथा न कहा गया। (महत्वपूर्ण अपवाद: बूलियन ऑपरेशंस or और and हमेशा अपने ऑपरेटरों में से एक लौटते हैं।)

+0

यह उनके प्रश्न का काफी जवाब नहीं देता है, "मुझे आश्चर्य है कि क्या पाइथन में कोई फ़ंक्शन खाली फ़ंक्शन जैसे फ़ंक्शन है"। यह उसे बताता है कि "खाली" _ क्या है लेकिन यह नहीं पता कि कोई मनमानी वस्तु खाली है या नहीं। – agf

+0

मुझे लगता है कि मेरा जवाब यह कह रहा है कि दस्तावेज का एक पूरा खंड है जो बताता है * "खाली" * क्या है। मैं इस प्रश्न के 3 उत्तरों के बीच कहूंगा कि हमने उपयोग के अधिकांश मामलों को समाप्त कर दिया है। – jgritty

16

भी देखें यह वीडियो पिछले जवाब जो not कीवर्ड

How to check if a list is empty in Python?

यह सामान्यीकरण करता सिफारिश की गई है सिर्फ सूचियों से अधिक:

>>> a = "" 
>>> not a 
True 

>>> a = [] 
>>> not a 
True 

>>> a = 0 
>>> not a 
True 

>>> a = 0.0 
>>> not a 
True 

>>> a = numpy.array([]) 
>>> not a 
True 

विशेष रूप से, यह स्ट्रिंग के रूप में "0" के लिए काम नहीं करेगा क्योंकि स्ट्रिंग में वास्तव में कुछ होता है - एक वर्ण जिसमें "0" होता है। उस के लिए आप इसे एक पूर्णांक कन्वर्ट करने के लिए है:

>>> a = "0" 
>>> not a 
False 

>>> a = '0' 
>>> not int(a) 
True 
+1

'not' एक आदेश नहीं है, लेकिन एक कीवर्ड है। यह एक समारोह भी नहीं है, इसलिए आपको कोष्ठक की आवश्यकता नहीं है (और इसका उपयोग नहीं करना चाहिए)। 'नहीं' भी अंतर्निहित रूप से एक बूल में परिवर्तित हो रहा है; आप हमेशा एक बूलियन प्राप्त करने के लिए उलटना नहीं चाहते हैं। – agf

+0

धन्यवाद @agf। इसे पोस्ट में ठीक किया गया। – kitchenette

1

बस का उपयोग not:

if not your_variable: 
    print("your_variable is empty") 

और अपने 0 as string उपयोग के लिए:

if your_variable == "0": 
    print("your_variable is 0 (string)") 

उन्हें गठबंधन:

if not your_variable or your_variable == "0": 
    print("your_variable is empty") 

पायथन सादगी के बारे में है, तो यह जवाब है :)

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