如果str以s开头,则str.find(s)失败

时间:2017-01-12 13:46:53

标签: python

此代码应该计算字符串s中'bob'的出现次数。 如果s不以'bob'开头,代码工作正常,我正在寻找计数。 但是一旦s以'bob'开头,它就找不到任何东西。所有。返回-1。那是为什么?

beg = 0
count = 0
s = "boboxboobt"

while beg >=0 :
    beg = s.find('bob', beg)
    print("beg is :", beg)
    if beg > 0:
        count +=1
        beg +=2
        print('Count is:', count)
        print("beg is :", beg)

    else:
        print('negativ')
        break
print('count ', count)

2 个答案:

答案 0 :(得分:3)

不,它不返回-1,它返回,这是完全有效的,所以第一个条件应该是:

if beg >= 0:

答案 1 :(得分:1)

"boboxboobt".find('bob', 0)返回0,而不是-1

>>> s = "boboxboobt"
>>> s.find('bob', 0)
0

您的代码中有一个错误的错误:

if beg > 0:

排除 beg = 0案例。把它变成:

if beg > -1: