如何在Python中检测小写字母?

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

您可以通过两种不同的方式查找小写字符:

  1. 使用str.islower()查找小写字符.结合列表理解,您可以收集所有小写字母:

    lowercase = [c for c in s if c.islower()]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可以使用正则表达式:

    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)

  • @MartijnPieters:过滤器(str.islower,s)`怎么样? (2认同)

MrG*_*eek 5

有很多方法,这里有一些方法:

  1. 使用预定义函数character.islower():

    >>> c = 'a'
    >>> c.islower()
    True
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用ord()函数检查字母的ASCII码是否在小写字符的ASCII码范围内:

    >>> c = 'a'
    >>> ord(c) in range(97, 123)
    True
    
    Run Code Online (Sandbox Code Playgroud)
  3. 检查字母是否等于它的小写:

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

  • 上面没有提到第二种和第三种方法 (2认同)