program story

문자열의 문자가 문자인지 확인하는 방법은 무엇입니까?

inputbox 2020. 10. 5. 07:55
반응형

문자열의 문자가 문자인지 확인하는 방법은 무엇입니까? 파이썬


그래서 저는 islower와 isupper에 대해 알고 있지만 그 캐릭터가 문자인지 아닌지 확인할 수 있는지 알 수없는 것 같습니다.

Example:

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

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

.islower () 또는 .isupper ()하는 것 외에 문자인지 물어 보는 방법이 있습니까?


를 사용할 수 있습니다 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

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

I found a good way to do this with using a function and basic code. This is a code that accepts a string and counts the number of capital letters, lowercase letters and also 'other'. Other is classed as a space, punctuation mark or even Japanese and Chinese characters.

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)

Output::

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

By using str.isalpha() yoy can check if it is letter.


this code works:

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

참고URL : https://stackoverflow.com/questions/15558392/how-to-check-if-character-in-string-is-a-letter-python

반응형