首页 文章

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

提问于
浏览
0

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

  • 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
    

相关问题