2013-03-21 171 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

相關問題