如何检查字符串是否包含字母?

123 投票
7 回答
329253 浏览
提问于 2025-04-17 11:59

用纯Python怎么检查一个字符串里有没有字母?

string_1 = "(555).555-5555"
string_2 = "(555) 555 - 5555 ext. 5555

这里面,string_1如果没有字母,就会返回False;而string_2如果有字母,就会返回True

7 个回答

30

你可以用 islower() 来检查你的字符串里是否有小写字母(还有其他字符)。如果你想同时检查是否有大写字母,可以把它和 isupper() 一起用:

下面这个例子:字符串里有字母的情况:test 返回 true。

>>> z = "(555) 555 - 5555 ext. 5555"
>>> z.isupper() or z.islower()
True

下面这个例子:字符串里没有字母的情况:test 返回 false。

>>> z= "(555).555-5555"
>>> z.isupper() or z.islower()
False
>>> 

注意不要和 isalpha() 混淆,后者只有在所有字符都是字母时才会返回 True,这并不是你想要的结果。

另外,Barm 的回答很好地补充了我的内容,因为我的方法对混合大小写的处理不太好。

112

这样怎么样:

>>> string_1 = "(555).555-5555"
>>> string_2 = "(555) 555 - 5555 ext. 5555"
>>> any(c.isalpha() for c in string_1)
False
>>> any(c.isalpha() for c in string_2)
True
165

正则表达式应该是一种快速的方法:

re.search('[a-zA-Z]', the_string)

撰写回答