Python:移至For循环的下一个字母

时间:2018-09-23 03:36:24

标签: python loops for-loop iteration element

如何在第一个迭代完成之前进入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))

1 个答案:

答案 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