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

时间:2012-10-17 02:21:26

标签: python string lowercase letters

好的,我并没有真正得到我想要的答案所以我会尝试重新措辞。我需要知道是否有一个函数可以检测字符串中的小写字母。说我开始编写这个程序:

s = input('Type a word')

是否有一个函数可以让我检测字符串s中的小写字母?可能最终将这些字母分配给另一个变量,或者只打印小写字母或小写字母数。

虽然这些是我想用它做的,但我最感兴趣的是如何检测小写字母的存在。最简单的方法是受欢迎的,我只是在一个介绍性的python课程,所以我的老师不希望看到复杂的解决方案,当我采取我的期中考试。谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

使用正则表达式可能是最简单的方法:

# Python 3 version

import re

txt = 'MarMaLadE'

# Replace uppercase with "" - an empty string
ltxt,n = re.subn(r'[A-Z]', "", txt) 

print("lower case letters:"," ".join(set(ltxt)))
print("number of lc letters:", n)

使用set会删除重复的小写字母,您可能不希望这样。您可能还想考虑哪些字符是大写的,A-Z是否足够?另请参阅re.LOCALE标志。

答案 1 :(得分:0)

希望这会有所帮助,请记住python对缩进很谨慎。这不是一个很好的解决方案,但它有效。

def doWhatYouWantToDo(input):
 newString = ""
 alphabet = "abcdefghijklmnopqrstuvwxyz"
 for letter in input:
  if letter in alphabet:
   newString += letter
 return newString

yourString = 'MarMaLadE'
print doWhatYouWantToDo(yourString)
print len(doWhatYouWantToDo(yourString)

答案 2 :(得分:0)

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

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

>>> c = 'a'
>>> print(c.islower()) #this prints True

2-使用ord()函数检查字母的ASCII码是否在小写字符的ASCII码范围内:

>>> c = 'a'
>>> print(ord(c) in range(97,123)) #this will print True

3-检查字母是否等于小写字母:

>>> c = 'a'
>>> print(c.lower()==c) #this will print True

但这可能不是全部,如果你不喜欢这些,你可以找到自己的方法:D。

最后,让我们开始检测:

d = str(input('enter a string : '))
lowers = [c for c in d if c.islower()] #here i used islower() because it's the shortest one, using this list comprehension is the most efficient way of doing this