2013-03-21 147 views
32

所以我知道islower和isupper,但我似乎无法找出是否可以检查该字符是否是字母?如何检查字符串中的字符是否是字母? Python

Example: 

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

s[0].islower() = True 
s2[0].islower()= False 
s3[0].islower()=True 

有没有什么方法可以问问除了做.islower()或.isupper()之外的其他角色?

+0

请注意编程中的“单词字符”通常是指字母,数字和下划线。这个问题实际上是在问“信件”。如果您需要查看某个字符是否为单词字符,我发现的最好方法是character.isalnum()或字符==“_”'。 – Variadicism 2016-08-13 22:49:49

+0

我知道,但是我在3年前刚开始编程时问过这个问题。随意编辑它。 – 2016-08-13 23:46:50

+0

够公平的。我们都去过那里。我会要求编辑。 – Variadicism 2016-08-15 16:48:26

回答

62

您可以使用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 
+0

请注意,它是如此之好,它适用于各种字母: '>>> print [x.isalpha()foru'Español-한국어']'给你 [True,True,True,True ,True,True,True,False,True,True,True]如预期 – pryma 2017-09-15 09:37:14

8
str.isalpha() 

返回true,如果字符串中的所有字符是字母,并至少有一个字符,假的除此以外。字母字符是在Unicode字符数据库中定义为“Letter”的那些字符,即具有一般类别属性为“Lm”,“Lt”,“Lu”,“Ll”或“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 
>>> 

在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) 
>>> 
-2

此代码的工作:

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

使用是==,如果a是假的 – 2017-04-17 13:08:35

+0

好吧谢谢@Legolas Bloom – omry 2017-04-23 12:55:43

相关问题