2013-03-21 6 views
32

तो मुझे आस्तिक और आश्रय के बारे में पता है, लेकिन मुझे यह पता लगाना प्रतीत नहीं होता है कि क्या आप यह जांच सकते हैं कि वह अक्षर एक पत्र है या नहीं?कैसे जांचें कि स्ट्रिंग में वर्ण एक अक्षर है या नहीं? पायथन

Example: 

s = 'abcdefg' 
s2 = '123abcd' 
s3 = 'abcDEFG' 

s[0].islower() = True 
s2[0].islower()= False 
s3[0].islower()=True 

क्या यह पूछने का कोई तरीका है कि यह एक चरित्र है .islower() या .isupper()?

+0

कृपया ध्यान दें कि प्रोग्रामिंग में "शब्द चरित्र" आमतौर पर अक्षरों और संख्याओं और अंडरस्कोर को संदर्भित करता है। यह सवाल वास्तव में "अक्षरों" के बारे में पूछ रहा है; अगर आपको यह देखने की ज़रूरत है कि कोई चरित्र शब्द शब्द है, तो मुझे सबसे अच्छा तरीका मिला है 'character.isalnum() या character == "_" '। – Variadicism

+0

मुझे पता है, लेकिन मैंने इसे 3 साल पहले पूछा था जब मैंने पहली बार प्रोग्रामिंग शुरू की थी। इसे संपादित करने के लिए स्वतंत्र महसूस करें। –

+0

पर्याप्त मेला। हम सब वहा जा चुके है। मैं एक संपादन का अनुरोध करूंगा। – Variadicism

उत्तर

62

आप isalpha() उपयोग कर सकते हैं, एक उदाहरण http://docs.python.org/2/library/stdtypes.html

पर दस्तावेज़ देख सकेंगे:

>>> s = "a123b" 
>>> for char in s: 
...  print char, char.isalpha() 
... 
a True 
1 False 
2 False 
3 False 
b True 
+0

कृपया ध्यान दें, यह बहुत अच्छा है कि यह विभिन्न अक्षरों के लिए भी काम करता है: '>>> प्रिंट करें [x.isalpha() में x के लिए u'Español- 한국어 ']' आपको देता है [सही, सही, सही, सत्य , सही, सही, सही, गलत, सही, सही, सत्य] अपेक्षित – pryma

8
str.isalpha() 

वापसी अगर सही है स्ट्रिंग में सभी पात्रों वर्णमाला कर रहे हैं और कम से कम एक चरित्र है, झूठी अन्यथा। वर्णमाला वर्ण वे वर्ण हैं जिन्हें यूनिकोड वर्ण डेटाबेस में "पत्र" के रूप में परिभाषित किया गया है, यानी, सामान्य श्रेणी संपत्ति वाले लोग "एलएम", "लेफ्टिनेंट", "लू", "एलएल" या "लो" में से एक हैं। ध्यान दें कि यह यूनिकोड मानक में परिभाषित "वर्णमाला" संपत्ति से अलग है।

python2.x में:

>>> s = u'a1中文' 
>>> for char in s: print char, char.isalpha() 
... 
a True 
1 False 
中 True 
文 True 
>>> s = 'a1中文' 
>>> for char in s: print char, char.isalpha() 
... 
a True 
1 False 
� False 
� False 
� False 
� False 
� False 
� False 
>>> 

python3.x में:

>>> s = 'a1中文' 
>>> for char in s: print(char, char.isalpha()) 
... 
a True 
1 False 
中 True 
文 True 
>>> 

इस कोड काम:

>>> def is_alpha(word): 
...  try: 
...   return word.encode('ascii').isalpha() 
...  except: 
...   return False 
... 
>>> is_alpha('中国') 
False 
>>> is_alpha(u'中国') 
False 
>>> 

>>> a = 'a' 
>>> b = 'a' 
>>> ord(a), ord(b) 
(65345, 97) 
>>> a.isalpha(), b.isalpha() 
(True, True) 
>>> is_alpha(a), is_alpha(b) 
(False, True) 
>>> 
-2

इस कोड काम करता है:

str=raw_input("enter a string:") 
    for char in word: 
     if not char.isalpha(): 
      sum=sum+1 
     if sum>0: 
      print char 
+0

उपयोग इसके बजाय == है, यदि कोई झूठा –

+0

ठीक है धन्यवाद @ लेगोलास ब्लूम – omry

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