Python 编写一个程序,打印字符串包含子字符串的次数
我想数一数字符串s中有多少个BOB,如果这给了我17个Python 编写一个程序,打印字符串包含子字符串的次数,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我想数一数字符串s中有多少个BOB,如果这给了我17个 我的代码有什么问题吗?我是python新手。当你在字符串上循环时,一次性变量将保存字符,因此在你的循环中,x永远不等于bob 如果要计算非重叠字符串,只需使用str.count: s = "bobobobobobsdfsdfbob" count = 0 for x in s : if x == "bob" : count += 1 print count 对于重叠的子字符串,可以在正则表达式中使用lookaro
我的代码有什么问题吗?我是python新手。当你在字符串上循环时,一次性变量将保存字符,因此在你的循环中,
x
永远不等于bob
如果要计算非重叠字符串,只需使用str.count
:
s = "bobobobobobsdfsdfbob"
count = 0
for x in s :
if x == "bob" :
count += 1
print count
对于重叠的子字符串,可以在正则表达式中使用lookaround:
In [52]: s.count('bob')
Out[52]: 4
在字符串上循环时,throwaway变量将保存字符,因此循环中的
x
永远不等于bob
如果要计算非重叠字符串,只需使用str.count
:
s = "bobobobobobsdfsdfbob"
count = 0
for x in s :
if x == "bob" :
count += 1
print count
对于重叠的子字符串,可以在正则表达式中使用lookaround:
In [52]: s.count('bob')
Out[52]: 4
您可以使用string.count 例如:
In [57]: import re
In [59]: len(re.findall(r'(?=bob)', s))
Out[59]: 6
您可以使用string.count 例如:
In [57]: import re
In [59]: len(re.findall(r'(?=bob)', s))
Out[59]: 6
我并没有给出最好的解决方案,只是试图更正您的代码 了解
在您的情况下对每个(又称范围)所做的事情
s = "bobobobobobsdfsdfbob"
count = s.count("bob")
print(count)
产出:
for c in "Hello":
print c
在每次迭代中,您将一个字符与一个字符串进行比较,这将导致错误的答案。尝试类似于
(无重叠,即无跨度) 输出:
Count=6
我没有给出最好的解决方案,只是试图更正您的代码
了解在您的情况下对每个(又称范围)所做的事情
s = "bobobobobobsdfsdfbob"
count = s.count("bob")
print(count)
产出:
for c in "Hello":
print c
在每次迭代中,您将一个字符与一个字符串进行比较,这将导致错误的答案。尝试类似于
(无重叠,即无跨度) 输出:
Count=6
我没有得到答案17
,我在Python2.x中得到了0
。在Python3.x中,我得到了一个错误,可以通过使用print(count)
而不是print count
来更正。请确保您的代码运行,并确保您正在告诉我们实际问题。对于您给出的字符串,您希望得到什么样的答案?对于像bobobob
这样的较短字符串,您期望的答案是什么?可能重复的可能重复的我没有得到答案17
,我在python 2.x中得到0
。在Python3.x中,我得到了一个错误,可以通过使用print(count)
而不是print count
来更正。请确保您的代码运行,并确保您正在告诉我们实际问题。对于您给出的字符串,您希望得到什么样的答案?对于较短的字符串(如bobob
),您希望得到什么样的答案?如果子字符串完全分开,则只计算子字符串的可能重复。这取决于bobob
是否应返回1或2。@merlinpatt是的,这是另一个问题,请查看更新以获得一个解决方案。这仅计算完全分开的子字符串。这取决于bobob
是否应返回1或2。@merlinpatt是的,这是另一个问题,请查看更新以获得一个解决方案。