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' 的数量。
在这里,试试这个,手工制作:)
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
希望这可以帮助!
x
是一个数字,它不能等于'bob'
。这就是为什么它总是输出 0。
您应该使用x
以获取子字符串s
:
bob = 0
for x in range(len(s) - 2):
if s[x:x+3] == 'bob':
bob += 1
您也可以使用enumerate
.
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')