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

19 浏览
0 Comments

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

我知道关于islowerisupper,但你可以检查那个字符是否是字母吗?

例如:

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

有没有办法只问它是否是字符,而不是运用.islower().isupper()

admin 更改状态以发布 2023年5月21日
0
0 Comments

str.isalpha()

如果字符串中所有字符都是字母且至少有一个字符,则返回True;否则返回False。字符在Unicode字符数据库中被定义为“Letter”的是字母,即其一般类别属性为“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)
>>>

0
0 Comments

您可以使用str.isalpha() 方法。

例如:

s = 'a123b'
for char in s:
    print(char, char.isalpha())

输出:

a True
1 False
2 False
3 False
b True

0