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

O.r*_*rka 90 python string find

所以我知道islower和isupper,但我似乎无法知道你是否可以检查这个字符是否是一个字母?

Example:

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

s[0].islower() = True
s2[0].islower()= False
s3[0].islower()=True
Run Code Online (Sandbox Code Playgroud)

除了做.islower()或.isupper()之外,还有什么方法可以问它是否是一个角色?

rai*_*ner 139

您可以使用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
Run Code Online (Sandbox Code Playgroud)

  • 请注意,它非常适用于各种字母表:`>>>打印[x.isalpha()for xinu'Español-한국어']`给你[真,真,真,真,真,正如所料,真,假,真,真,真 (9认同)

Leg*_*oom 22

str.isalpha()
Run Code Online (Sandbox Code Playgroud)

如果字符串中的所有字符都是字母并且至少有一个字符,则返回true,否则返回false.字母字符是在Unicode字符数据库中定义为"字母"的那些字符,即具有一般类别属性的那些字符是"Lm","Lt","Lu","L1"或"Lo"之一.请注意,这与Unicode标准中定义的"字母"属性不同.

在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
>>>
Run Code Online (Sandbox Code Playgroud)

在python3.x中:

>>> s = 'a1??'
>>> for char in s: print(char, char.isalpha())
...
a True
1 False
? True
? True
>>>
Run Code Online (Sandbox Code Playgroud)

这段代码工作:

>>> def is_alpha(word):
...     try:
...         return word.encode('ascii').isalpha()
...     except:
...         return False
...
>>> is_alpha('??')
False
>>> is_alpha(u'??')
False
>>>

>>> a = '?'
>>> b = 'a'
>>> ord(a), ord(b)
(65345, 97)
>>> a.isalpha(), b.isalpha()
(True, True)
>>> is_alpha(a), is_alpha(b)
(False, True)
>>>
Run Code Online (Sandbox Code Playgroud)