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


121

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

>>> 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 == "_".
Variadicism

알고 있지만 3 년 전 처음 프로그래밍을 시작할 때 이런 질문을했습니다. 자유롭게 편집하십시오.
O.rka

그럴 수 있지. 우리는 모두 거기에있었습니다. 수정을 요청하겠습니다.
Variadicism

답변:


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-한국어']예상대로 [True, True, True, True, True, True, True, False, True, True, True]를 제공합니다
pryma

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

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훨씬 쉽습니다 '
Aryan Beezadhur

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

A가 거짓이면 사용 == 대신 인
레골라스 블룸
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.