如何在第一个迭代完成之前进入for循环中的下一个字母?
s = 'mmmmbobob'
for letter in s:
if letter is 'b':
s = s + 1 <<<<<<<<<RIGHT HERE<<<<<<<<<
if letter is 'o':
s = s + 1 <<<<<<<<<THEN HERE<<<<<<<<<
if letter is "b":
counter_bob += 1
else:
break
else:
break
else:
continue
print('Number of times bob occurs is: %d' % (bob_name_counter))
答案 0 :(得分:0)
当前,您正在尝试将1
添加到字符串s
中,这将引发TypeError
。即使s
是int
,以这种方式递增它也不会移动到Python(或我知道的任何一种语言)循环的下一个迭代。
您可以使用关键字continue
立即移至循环的下一个迭代。此处的文档:https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops
但是,我认为这并不是您要执行的操作,因为您似乎想计算主字符串'bob'
中子字符串s
的出现。< / p>
相反,您应该遍历s
字符的索引,并在每一点检查当前字符和后两个字符是否一起构成子字符串'bob'
。如果是这样,请增加counter_bob
。
请牢记以下代码重构示例:
s = 'mmmmbobob'
counter_bob = 0
for i in range(len(s)):
if s[i:i+3] == 'bob':
counter_bob += 1
print('Number of times bob occurs is: %d' % (counter_bob))
哪些印刷品:
Number of times bob occurs is: 2