2010-03-08 5 views
124

पायथन में स्ट्रिंग खाली होने पर मैं परीक्षण कैसे कर सकता हूं?पायथन में टेक्स्ट "खाली" (रिक्त स्थान, टैब, न्यूलाइन) क्या है या नहीं?

उदाहरण के लिए,

"<space><space><space>" खाली है, तो

"<space><tab><space><newline><space>" है, इसलिए

"<newline><newline><newline><tab><newline>", आदि

उत्तर

191
yourString.isspace() 

"सच लौटें अगर वहाँ में केवल रिक्त स्थान चरित्र है स्ट्रिंग और कम से कम एक चरित्र है, अन्यथा झूठा। "

खाली स्ट्रिंग को संभालने के लिए एक विशेष मामले के साथ संयोजन करें।

वैकल्पिक रूप से, आप इस्तेमाल कर सकते हैं

strippedString = yourString.strip() 

और फिर जाँच अगर strippedString खाली है।

+0

यह अजगर 2.4 में विफल रहता है स्ट्रिंग एक नॉन-ब्रेकिंग स्पेस होता है, तो जांच नहीं करता, charcode 'U + 00A0' या' ALT + 160'। हालांकि, Python 2.7 में तय किया गया है। – Kumba

+6

ध्यान रखें कि यह 'कोई नहीं', या ''' –

+1

पाइथन 2.7.13 में नहीं है, जारीस्थान() एक स्थान के रूप में गैर-ब्रेकिंग स्पेस पर विचार करेगा। अच्छा! –

38
>>> tests = ['foo', ' ', '\r\n\t', '', None] 
>>> [bool(not s or s.isspace()) for s in tests] 
[False, True, True, True, True] 
>>> 
14

आप isspace() विधि

str उपयोग करना चाहते हैं। isspace()

वापसी सच अगर वहाँ स्ट्रिंग में केवल रिक्त स्थान चरित्र और कम से कम एक चरित्र, झूठी अन्यथा नहीं है।

यह प्रत्येक स्ट्रिंग ऑब्जेक्ट पर परिभाषित किया गया है। यहां यह आपके विशिष्ट उपयोग मामले के लिए एक उपयोग उदाहरण है:

if aStr and (not aStr.isspace()): 
    print aStr 
3

विभाजन() विधि द्वारा दी गई सूची की लंबाई की जांच करें।

if (len(your_string.split())==0: 
    print("yes") 

या अशक्त साथ पट्टी() विधि के उत्पादन की तुलना करें।

if (your_string.strip())=='': 
    print("yes") 
+0

स्ट्रिंग को विभाजित करने का कोई कारण नहीं है, तारों पर 'len() 'काम करता है।इसके अलावा, ओपी खाली स्ट्रिंग के लिए परीक्षण करने के लिए नहीं कह रहा था, लेकिन एक स्ट्रिंग के लिए जो सभी रिक्त स्थान था। हालांकि आपकी दूसरी विधि खराब नहीं है। इसके अलावा, पाइथन में सशर्त के आस-पास के आपके माता-पिता की आवश्यकता नहीं है। – NeilK

+0

आश्चर्यजनक रूप से पर्याप्त है, पहली विधि वास्तव में वर्णों के * none * की तुलना में चेक करने का एक अच्छा तरीका है, यदि आप '== 0' को' == 1' से बदलते हैं –

0

मैं अपने परिदृश्य में यह सोचते हैं रहा हूँ, कोई रिक्त स्ट्रिंग एक स्ट्रिंग है कि वास्तव में खाली है या एक होता है वह यह है कि सभी सफेद जगह।

if(str.strip()): 
    print("string is not empty") 
else: 
    print("string is empty") 

नोट इस के लिए None

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