定义一个函数countLowerFromUntil(...),它接收一个字符串(st)和一个整数值(start)作为输入。该字符串可能也可能是空字符串。此函数应返回输入字符串st中有多少个小写字母,开始计算(并包括)开始位置并一次前进一个位置,直到到达字符串的末尾或直到达到一个数字(如果有的话)这样)。该字符串可能包含字母或数字。如果起始值超出字符串范围,则函数应返回0.注意:请记住字符串方法islower()返回true应用于仅包含小写字母的字符或字符串。
例如countLowerFromUntil(" ABCxAxx1aa")应该返回3,因为在到达数字1之前有三个小写字母(3" x"' s)
例如,以下代码片段:
val = countLowerFromUntil("ABCxAxx1aa",0)
print (val)
应该产生输出:
3
到目前为止我有这个但是我收到了一个错误:
def countLowerFromUntil(st,ch):
s = st().strip()
count = 1
for i in s:
if i.islower():
count = count + 1
return count
答案 0 :(得分:0)
您需要考虑start
。从开始索引开始迭代。你可以切片你需要的东西。您不需要剥离(剥离空格可能会使start
无效)
算法如下:
count
def f(string, start):
count = 0
for c in string[start:]:
if c.isdigit():
break
elif c.islower():
count += 1
return count
>>> f("ABCxAxx1aa", 0)
3