[python] 문자열의 문자가 문자인지 어떻게 확인할 수 있습니까? (파이썬)

islowerisupper에 대해 알고 있지만 그 문자가 문자인지 여부를 확인할 수 있습니까? 예를 들면 :

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

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

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

이 일 외에 문자 인 경우 그냥 부탁 할 수있는 방법이 있나요 .islower()또는 .isupper()?



답변

사용할 수 있습니다 str.isalpha().

예를 들면 :

s = 'a123b'

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

산출:

a True
1 False
2 False
3 False
b True


답변

str.isalpha()

문자열의 모든 문자가 알파벳이고 하나 이상의 문자가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 알파벳 문자는 유니 코드 문자 데이터베이스에서 “Letter”로 정의 된 문자입니다. 즉, 일반 범주 속성이 “Lm”, “Lt”, “Lu”, “Ll”또는 “Lo”중 하나 인 문자입니다. 이것은 유니 코드 표준에 정의 된 “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)
>>>


답변

함수와 기본 코드를 사용하여이를 수행하는 좋은 방법을 찾았습니다. 이것은 문자열을 받아들이고 대문자, 소문자 및 ‘기타’의 수를 계산하는 코드입니다. 기타는 공백, 문장 부호 또는 일본어 및 중국어 문자로 분류됩니다.

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


답변

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()편지인지 확인할 수 있습니다.


답변

이것은 작동합니다 :

any(c.isalpha() for c in 'string')


답변

이것은 작동합니다 :

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


답변