我如何检查字符串中的字符是否为字母?(Python)
我如何检查字符串中的字符是否为字母?(Python)
我知道关于islower
和isupper
,但你可以检查那个字符是否是字母吗?
例如:
>>> s = 'abcdefg' >>> s2 = '123abcd' >>> s3 = 'abcDEFG' >>> s[0].islower() True >>> s2[0].islower() False >>> s3[0].islower() True
有没有办法只问它是否是字符,而不是运用.islower()
或.isupper()
?
admin 更改状态以发布 2023年5月21日
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) >>>
您可以使用str.isalpha()
方法。
例如:
s = 'a123b' for char in s: print(char, char.isalpha())
输出:
a True 1 False 2 False 3 False b True