web-dev-qa-db-ja.com

文字列の文字が文字であるかどうかを確認する方法は? Python

だから私はislowerとisupperについて知っていますが、その文字が文字であるかどうかを確認できるかどうかはわかりませんか?

Example:

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

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

.islower()または.isupper()を実行する以外に、それが文字かどうかを尋ねる方法はありますか?

66
O.rka

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
112
rainer
str.isalpha()

文字列内のすべての文字がアルファベットで、少なくとも1つの文字がある場合はtrueを返し、そうでない場合はfalseを返します。アルファベット文字は、Unicode文字データベースで「文字」として定義されている文字です。つまり、一般的なカテゴリプロパティが「Lm」、「Lt」、「Lu」、「Ll」、または「Lo」のいずれかです。これは、Unicode標準で定義されている「Alphabetic」プロパティとは異なることに注意してください。

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)
>>>
17
Legolas Bloom

関数と基本コードを使用してこれを行う良い方法を見つけました。これは、文字列を受け入れ、大文字、小文字、および「その他」の数をカウントするコードです。その他は、スペース、句読点、さらには日本語と中国語の文字として分類されます。

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.")
3
MII

データ= "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)

出力::

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

str.isalpha()を使用することにより、yoyは文字かどうかを確認できます。

0
Chandan Sharma