如何定义一个函数来计算小写字母直到达到一个值?

时间:2017-11-23 00:22:11

标签: python string

定义一个函数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

1 个答案:

答案 0 :(得分:0)

您需要考虑start。从开始索引开始迭代。你可以切片你需要的东西。您不需要剥离(剥离空格可能会使start无效)

算法如下:

  • 从0开始计算
  • 如果遇到数字,请停止计算!
  • 如果您遇到小写字符,请递增计数器。
  • 在功能结束时返回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