好的,我并没有真正得到我想要的答案所以我会尝试重新措辞。我需要知道是否有一个函数可以检测字符串中的小写字母。说我开始编写这个程序:
s = input('Type a word')
是否有一个函数可以让我检测字符串s中的小写字母?可能最终将这些字母分配给另一个变量,或者只打印小写字母或小写字母数。
虽然这些是我想用它做的,但我最感兴趣的是如何检测小写字母的存在。最简单的方法是受欢迎的,我只是在一个介绍性的python课程,所以我的老师不希望看到复杂的解决方案,当我采取我的期中考试。谢谢你的帮助!
答案 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