Python 3.x 有人能解释一下这段代码是如何处理范围和切片的吗?
我不知道len在这里是怎么工作的,或者如果s[I:I+3]='bob'那么这里发生的事情是,Python 3.x 有人能解释一下这段代码是如何处理范围和切片的吗?,python-3.x,Python 3.x,我不知道len在这里是怎么工作的,或者如果s[I:I+3]='bob'那么这里发生的事情是,I遍历所有字母,并在每个循环中按I和I+3对所有字母进行切片。len所做的只是取s的长度(基本上是其中有多少个字符)并将其作为整数返回。s[i:i+3]=='bob'正在做的是确定切片字符串是否等于'bob'。因此,假设i代表s字符串中的所有字母。因此,如果i和i+3包含的切片字符串中有“bob”,则返回true。这不是最好的解释,但我希望它能有所帮助。关于len的文档如下: 它将以字符串形式实现为一个
I
遍历所有字母,并在每个循环中按I
和I+3
对所有字母进行切片。len所做的只是取s
的长度(基本上是其中有多少个字符)并将其作为整数返回。s[i:i+3]=='bob'
正在做的是确定切片字符串是否等于'bob'
。因此,假设i
代表s
字符串中的所有字母。因此,如果i
和i+3
包含的切片字符串中有“bob”,则返回true。这不是最好的解释,但我希望它能有所帮助。关于len的文档如下:
它将以字符串形式实现为一个神奇的私有函数(我相信是len)
有关范围的文档如下所示:
对于一个arg,range生成该arg的整数0(不包括arg本身)
循环中的切片求值为'elj',然后是'ljw',然后是'jwb'。。。在随后的迭代中。切片[a:b]不包括第b个元素。因此,当我在len(s)范围内为I做时,它声明了一个变量'I',该变量包含所有的's'字符串。话虽如此,[i:i+3]在做什么?我
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))