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

我知道 islowerisupper,但是你能检查一下那个字符是不是一个字母吗? 例如:

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


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


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

有没有办法只是问它是一个字符除了做 .islower().isupper()

574391 次浏览

你可以使用 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。字母字符是 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)
>>>

这种方法是有效的:

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

我找到了一个使用函数和基本代码来完成这项工作的好方法。 这个代码接受一个字符串,并计算大写字母、小写字母和其他字母的数量。其他被归类为空格,标点符号,甚至日文和汉字。

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