如何检查字符串中的字符是否为字母?Python

How to check if character in string is a letter? Python

所以我知道IsLower和Isupper,但我似乎不知道你是否可以检查这个字符是否是字母?

1
2
3
4
5
6
7
8
9
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上的文档。

一个例子:

1
2
3
4
5
6
7
8
9
>>> s ="a123b"
>>> for char in s:
...     print char, char.isalpha()
...
a True
1 False
2 False
3 False
b True


1
str.isalpha()

如果字符串中的所有字符都是字母,并且至少有一个字符,则返回true,否则返回false。字母字符是在Unicode字符数据库中定义为"字母"的字符,即具有"lm"、"lt"、"lu"、"ll"或"lo"之一的一般类别属性的字符。请注意,这与Unicode标准中定义的"字母"属性不同。

在Python 2.x中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> 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
>>>

在Python 3.x中:

1
2
3
4
5
6
7
8
>>> s = 'a1中文'
>>> for char in s: print(char, char.isalpha())
...
a True
1 False
True
True
>>>

这个代码工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> 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)
>>>


我发现了一种使用函数和基本代码的好方法。这是一个接受字符串并计算大写字母、小写字母和"其他"字母数的代码。另一个被归类为空格、标点符号,甚至是日文和汉字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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.")

此代码有效:

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