【发布时间】:2017-03-19 09:52:12
【问题描述】:
我正在构建一个函数,它接受代表多行的字符串(文本)并计算有多少行以数字(0-9)开头,然后返回一个整数作为计数结果。
我使用 split 来获取每一行,然后获取检查第一个索引的功能。我得到一个超出范围的错误,因为一些测试用例有空格作为第一个索引。我该如何解决这个问题?
这是确切的错误:
错误:test_count_digit_leading_lines_14 (main.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