Python中关于while循环的疑问

关于下面的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,是我的理解有问题吗?请各位帮忙解答。

猜你喜欢

转载自blog.csdn.net/wangyu13476969128/article/details/81911689