1
    s = 'gfdhbobobyui'
    bob = 0
    for x in range(len(s)):
         if x == 'bob':
             bob += 1
    print('Number of times bob occurs is: ' + str(bob))

试图编写一个代码来计算 'bob' 在 s 中出现的次数,但由于某种原因,这总是输出 0 来表示 'bob' 的数量。

4

3 回答 3

3

在这里,试试这个,手工制作:)

for i, _ in enumerate(s): #i here is the index, equal to "i in range(len(s))"
    if s[i:i+3] == 'bob': #Check the current char + the next three chars.
        bob += 1
print('Number of times bob occurs is: ' + str(bob))

演示

>>> s = 'gfdhbobobyui'
>>> bob = 0
>>> for i, v in enumerate(s): #i here is the index, equal to "i range(len(s))"
    if s[i:i+3] == 'bob': #Check the current char + the next two chars.
        bob += 1


>>> bob
2

希望这可以帮助!

于 2013-10-27T10:42:42.287 回答
3

x是一个数字,它不能等于'bob'。这就是为什么它总是输出 0。

您应该使用x以获取子字符串s

bob = 0
for x in range(len(s) - 2):
    if s[x:x+3] == 'bob':
        bob += 1

您也可以使用enumerate.

于 2013-10-27T10:52:17.223 回答
2
s = 'gfdhbobobyui'
bob = 0
for x in range(len(s)):
     if s[x:x+3] == 'bob':  # From x to three 3 characters ahead.
         bob += 1
print('Number of times bob occurs is: ' + str(bob))

工作示例

但最好的方法是这样,但是它不适用于重叠字符串:

s.ount('bob')
于 2013-10-27T10:41:53.117 回答