定义一个函数countLowerFromUntil(...),它接收一个字符串(st)和一个整数值(start)作为输入 . 该字符串也可能是空字符串 . 此函数应返回输入字符串st中有多少个小写字母,开始计数(并包括)开始位置并一次前进一个位置,直到到达字符串的末尾或直到达到一个数字(如果有的话)这样) . 该字符串可能包含字母或数字 . 如果起始值超出字符串范围,则函数应返回0.注意:请记住字符串方法islower(),它返回true应用于仅包含小写字母的字符或字符串 .
例如countLowerFromUntil(“ABCxAxx1aa”)应返回3,因为在到达数字1之前有三个小写字母(3“x”)
作为示例,以下代码片段:
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
1 回答
你需要考虑
start
. 从开始索引开始迭代 . 你可以切片你需要的东西 . 您不需要剥离(剥离空格可能会使start
无效)算法如下:
计数从0开始
如果遇到数字,请停止计数!
如果遇到小写字符,请递增计数器 .
在函数结束时返回
count