Python 超出范围错误?

Python 超出范围错误?,python,range,output,counting,Python,Range,Output,Counting,我正在构建一个函数,该函数接受表示多行的字符串(文本),并计算以数字(0-9)开头的行数,然后返回一个整数作为计数结果 我使用split得到每一行,然后得到检查第一个索引的函数。我得到了一个超出范围的错误,因为一些测试用例的第一个索引是空的。我该如何解决这个问题 下面是确切的错误: 错误:测试\u计数\u数字\u前导\u行\u 14(main.AllTests) 回溯(最近一次呼叫最后一次): 文件“testerl7.py”,第88行,在test\u count\u digital\u lead

我正在构建一个函数,该函数接受表示多行的字符串(文本),并计算以数字(0-9)开头的行数,然后返回一个整数作为计数结果

我使用split得到每一行,然后得到检查第一个索引的函数。我得到了一个超出范围的错误,因为一些测试用例的第一个索引是空的。我该如何解决这个问题

下面是确切的错误:

错误:测试\u计数\u数字\u前导\u行\u 14(main.AllTests) 回溯(最近一次呼叫最后一次): 文件“testerl7.py”,第88行,在test\u count\u digital\u leading\u line\u 14中 def测试\u count\u digit\u leading\u lines\u 14(self):self.assertEqual(count\u digit\u leading\u lines(“\t4G\n4G\n4\tG\n\n4000\n55\nsix\n7天”),5) 文件“/Users/kgreenwo/Desktop/student.py”,第8行,在计数行、数字行和前导行中 检查=换行[i][0]#检查每行的第一个字符 索引器错误:字符串索引超出范围


以下是示例输出:

计数数字前导行(“AAA\n1st”)→ 1#第二行从数字1开始

计数数字前导行(“\t4G\nHz\n”)→ 0#第1行开始,带制表符

计数数字前导行(“0\n0 3\nn4\n”)→ 二,

这是我目前的代码:

def count_digit_leading_lines(text):
count=0
if text == " ":
    return 0
else:
    newlines=text.rstrip('\n').split('\n') #split each line
    for i in range(len(newlines)): 
        if newlines[i] != None:
            check=newlines[i][0] #check first character in each line
            if check.isdigit(): #if 1st is digit 0-9
                count+=1
    return count #return how many times

换行符数组中可能有长度为0的字符串。您应该首先删除这些元素:

# add this line newlines = [ a for a in newlines if len(a) > 0 ]
# as shown below:


def count_digit_leading_lines(text):
    count=0
    if text == " ":
        return 0
    else:
        newlines = text.rstrip('\n').split('\n') #split each line
        newlines = [ a for a in newlines if len(a) > 0 ]
        for i in range(len(newlines)): 
            check=newlines[i][0] #check first character in each line
            if check.isdigit(): #if 1st is digit 0-9
                count+=1