【问题标题】:Out of range error?超出范围错误?
【发布时间】:2017-03-19 09:52:12
【问题描述】:

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

我使用 split 来获取每一行,然后获取检查第一个索引的功能。我得到一个超出范围的错误,因为一些测试用例有空格作为第一个索引。我该如何解决这个问题?

这是确切的错误:

错误:test_count_digit_leading_lines_14 (ma​​in.AllTests)

Traceback(最近一次调用最后一次): 文件“testerl7.py”,第 88 行,在 test_count_digit_leading_lines_14 def test_count_digit_leading_lines_14 (self): self.assertEqual (count_digit_leading_lines("\t4G\n4G\n4\tG\n\n4000\n55\nsix\n7 天"),5) 文件“/Users/kgreenwo/Desktop/student.py”,第 8 行,在 count_digit_leading_lines 中 check=newlines[i][0] #检查每一行的第一个字符 IndexError: 字符串索引超出范围


以下是示例输出:

count_digit_leading_lines ("AAA\n1st") → 1 # 第二行以数字 1 开始

count_digit_leading_lines("\t4G\nHz\n") → 0 # 第一行以制表符开始

count_digit_leading_lines ("0\n0 3\nn4\n") → 2

这是我当前的代码:

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

【问题讨论】:

    标签: python range output counting


    【解决方案1】:

    换行数组中可能有长度为 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
    

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多