您好,提前致谢。了解索引超出范围Python
我可以让我的代码工作,但我需要帮助了解问题所在。
我正在做一个关于编码的测试问题,并且遇到了这个问题。
返回字符串“code”出现在给定字符串中任何位置的次数,接受'd'的任何字母,所以“cope”和“cooe”计数。
count_code( 'aaacodebbb')→1 count_code( 'codexxcode')→2 count_code( 'cozexxcope')→2
现在经过几次尝试,我得到我的代码工作
def count_code(str): count =0 for i in range(len(str)): if str[i:i+2] == 'co' and str[i+3:i+4]=='e': count += 1 return count print(count_code('codecodecode'))
^我明白这一点(我可以做正则表达式,但我无法导入)
但我的第一次尝试是这样的:
def count_code(str): count =0 for i in range(len(str)): if str[i:i+2] == 'co' and str[i+3]=='e': count += 1 return count print(count_code('codecodecode'))
浏览器(该浏览器会保存,编译并运行)给了我一个索引超出范围的错误和测试后,我明白这是为什么。当我= 9 ...我+9 = 12这比字符串更长,所以超出范围我得到它。但是我在Aptana中运行了第二个代码,它运行良好,所以第二个错误代码是不是?
但工作包含str [i + 3:i + 4] =='e'的代码不会超出范围,我不明白为什么。当我到达计数器9时,它会是比字符串长的字符[12:13]。
感谢您的帮助仍然学习基础知识,并希望确保我有一个良好的基础。
感谢这两个答案。两人都帮助了第一名。 – Atropos