关于下面的python的题目:
相关链接:
https://codingbat.com/prob/p186048
左边的框里面的答案是正确的,是网上找的答案,现在有个问题:
当i=0时,对于第二个count_code('codexxcode') → 2,我说下我的理解:
第一次循环:
第二条 if len(str[0:]) >= 4 and str[3+0] == "e":
这里的len(str[0:]) = 10 大于 4 , 同时 str[3] == "e":
两个条件都满足,所以count = 1 , 那么这时 i = 3
第二次循环:
此时i = 3 ,即 while "co" in str[3:] : , 那么继续往下:
if len(str[3+str[3:].index("co"):]) >=4 ,由于这里的str[3:].index("co") = 6,即str[ 3+6: ]
到这一步我理解的是len(str[9:]) ,这里的长度就是1了,它小于4,而不是大于4,那么count应该是等于1,而不是2
为什么这个脚本是正确的,即它满足count_code('codexxcode') → 2 ,而我根据这个脚本理解的却是count等于1,是我的理解有问题吗?请各位帮忙解答。