Jus*_*313 35 python string lowercase letters
我需要知道是否有一个函数可以检测字符串中的小写字母.说我开始编写这个程序:
s = input('Type a word')
Run Code Online (Sandbox Code Playgroud)
是否有一个函数可以让我检测字符串s中的小写字母?可能最终将这些字母分配给不同的变量,或者只打印小写字母或小写字母数.
虽然那些是我想用它做的,但我最感兴趣的是如何检测小写字母的存在.最简单的方法是受欢迎的,我只是在一个介绍性的python课程,所以我的老师不希望看到复杂的解决方案,当我采取我的期中考试.谢谢您的帮助!
Mar*_*ers 36
要检查字符是否为小写,请使用islower方法str.这个简单的命令式程序打印字符串中的所有小写字母:
for c in s:
if c.islower():
print c
Run Code Online (Sandbox Code Playgroud)
请注意,在Python 3中,您应该使用print(c)而不是print c.
可能最终将这些字母分配给不同的变量.
要做到这一点,我建议使用列表理解,虽然你可能还没有在你的课程中涵盖这个:
>>> s = 'abCd'
>>> lowercase_letters = [c for c in s if c.islower()]
>>> print lowercase_letters
['a', 'b', 'd']
Run Code Online (Sandbox Code Playgroud)
或者获取一个可以''.join与生成器一起使用的字符串:
>>> lowercase_letters = ''.join(c for c in s if c.islower())
>>> print lowercase_letters
'abd'
Run Code Online (Sandbox Code Playgroud)
小智 15
您可以使用内置功能any和发电机.
>>> any(c.islower() for c in 'Word')
True
>>> any(c.islower() for c in 'WORD')
False
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 11
您可以通过两种不同的方式查找小写字符:
使用str.islower()查找小写字符.结合列表理解,您可以收集所有小写字母:
lowercase = [c for c in s if c.islower()]
Run Code Online (Sandbox Code Playgroud)您可以使用正则表达式:
import re
lc = re.compile('[a-z]+')
lowercase = lc.findall(s)
Run Code Online (Sandbox Code Playgroud)第一种方法返回单个字符列表,第二种方法返回字符组列表:
>>> import re
>>> lc = re.compile('[a-z]+')
>>> lc.findall('AbcDeif')
['bc', 'eif']
Run Code Online (Sandbox Code Playgroud)
有很多方法,这里有一些方法:
使用预定义函数character.islower():
>>> c = 'a'
>>> c.islower()
True
Run Code Online (Sandbox Code Playgroud)使用ord()函数检查字母的ASCII码是否在小写字符的ASCII码范围内:
>>> c = 'a'
>>> ord(c) in range(97, 123)
True
Run Code Online (Sandbox Code Playgroud)检查字母是否等于它的小写:
>>> c = 'a'
>>> c.lower() == c
True
Run Code Online (Sandbox Code Playgroud)但这可能不是全部,如果你不喜欢这些,你可以找到自己的方式:D.
最后,让我们开始检测:
>>> from string import ascii_lowercase
>>> c = 'a'
>>> c in ascii_lowercase
True
Run Code Online (Sandbox Code Playgroud)