मैं कैसे जांच सकता हूं कि क्या एक स्ट्रिंग में वर्ण एक पत्र है? (अजगर)


121

मैं के बारे में पता islowerहै और isupper, लेकिन आप जाँच कर सकते हैं या नहीं, चरित्र एक पत्र है? उदाहरण के लिए:

>>> s = 'abcdefg'
>>> s2 = '123abcd'
>>> s3 = 'abcDEFG'
>>> s[0].islower()
True

>>> s2[0].islower()
False

>>> s3[0].islower()
True

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


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

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

काफी उचित। हम सब वहा जा चुके है। मैं एक संपादन का अनुरोध करता हूँ।
वारियाडिज्म

जवाबों:


190

आप उपयोग कर सकते हैं str.isalpha()

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

s = 'a123b'

for char in s:
    print(char, char.isalpha())

आउटपुट:

a True
1 False
2 False
3 False
b True

9
कृपया ध्यान दें, यह इतना अच्छा है कि यह विभिन्न वर्णमालाओं के लिए भी काम करता है: >>> print [x.isalpha() for x in u'Español-한국어']आपको उम्मीद के अनुसार [सच्चा, सच्चा, सच्चा, सच्चा, सच्चा, सच्चा, झूठा, सच्चा, सच्चा] देता है
pryma

27
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)
>>>

4

मुझे एक फ़ंक्शन और मूल कोड का उपयोग करने का एक अच्छा तरीका मिला। यह एक ऐसा कोड है जो एक स्ट्रिंग को स्वीकार करता है और कैपिटल लेटर्स की संख्या, लोअरकेस लेटर्स और 'अन्य' को भी गिनता है। अन्य को अंतरिक्ष, विराम चिह्न या जापानी और चीनी वर्णों के रूप में वर्गीकृत किया गया है।

def check(count):

    lowercase = 0
    uppercase = 0
    other = 0

    low = 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
    upper = 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'



    for n in count:
        if n in low:
            lowercase += 1
        elif n in upper:
            uppercase += 1
        else:
            other += 1

    print("There are " + str(lowercase) + " lowercase letters.")
    print("There are " + str(uppercase) + " uppercase letters.")
    print("There are " + str(other) + " other elements to this sentence.")

str.isalphaबहुत आसान है '
आर्यन बीज़ादुर

1

data = "abcdefg hi j 12345"

digits_count = 0
letters_count = 0
others_count = 0

for i in userinput:

    if i.isdigit():
        digits_count += 1 
    elif i.isalpha():
        letters_count += 1
    else:
        others_count += 1

print("Result:")        
print("Letters=", letters_count)
print("Digits=", digits_count)

आउटपुट:

Please Enter Letters with Numbers:
abcdefg hi j 12345
Result:
Letters = 10
Digits = 5

उपयोग करके str.isalpha()आप देख सकते हैं कि क्या यह एक पत्र है।



-2

यह काम:

word = str(input("Enter string:"))
notChar = 0
isChar = 0
for char in word:
    if not char.isalpha():
        notChar += 1
    else:
        isChar += 1
print(isChar, " were letters; ", notChar, " were not letters.")

उपयोग के बजाय == है, अगर ए झूठी है
लेगोलस ब्लूम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.