s = 'eljwboboblejr' # dont paste into grader
count = 0
for i in range (len(s)):
if s[i:i+3]== 'bob':
count+=1
print('Number of times bob occurs is: ' + str(count))
我不知道len在这里工作的方式,或者s [i:i + 3] ==' bob'
答案 0 :(得分:0)
所以这里发生的是i
遍历所有字母,并在每个循环中按i
和i+3
切割所有字母。 len
正在做的只是取s
的长度(基本上有多少个字符)并将其作为整数返回。 s[i:i+3] == 'bob'
正在做的是确定切片的字符串是否等于'bob'
。因此,假设i
表示s
字符串中的所有字母。因此,如果i
和i+3
包含的切片字符串中包含“bob”,则返回true。这不是最好的解释,但我希望它有所帮助。
答案 1 :(得分:0)
len的文档在这里: https://docs.python.org/3.2/library/functions.html#len
它将在字符串中实现为一个神奇的私有函数(我相信__len__)。
范围的文档在这里: https://docs.python.org/3.2/library/functions.html#range
使用一个arg,range会生成0到该arg的整数0(不包括arg本身)。
循环中的切片在后续迭代中计算为'elj',然后是'ljw',然后是'jwb',....切片[a:b]不包括第b个元素。