Python For循环函数未返回正确的输出

Python For循环函数未返回正确的输出,python,Python,我正在写一个程序,看看一个3位数的子字符串在一个字符串中出现了多少次。例如,子字符串“122”将在字符串“122122”中显示2次。但是,每当我运行它时,它都返回0,即使子字符串确实出现。你能告诉我我的功能有什么问题吗 def count_substring(string, sub_string): count = 0 for i in range (len(string)): if string[i:i+3] == sub_string:

我正在写一个程序,看看一个3位数的子字符串在一个字符串中出现了多少次。例如,子字符串“122”将在字符串“122122”中显示2次。但是,每当我运行它时,它都返回0,即使子字符串确实出现。你能告诉我我的功能有什么问题吗

def count_substring(string, sub_string):
    count = 0
    for i in range (len(string)): 
        if string[i:i+3] == sub_string:
           count+=1
  
这可以帮助您:

def count_substring(string, sub_string):
    return string.count(sub_string)

使用@Samwise的评论作为建议:

def count_子字符串(字符串,子字符串):
返回字符串.计数(子字符串)

尽管如此,由于这是一个单行程序,如果您只需要运行此函数一次,您甚至可能不想将其分解为自己的函数。所以只要在需要的地方使用
string.count(sub_string)

No
return
函数?它不返回0,而是返回
None
。您必须在最后返回计数!您也可以只使用内置的
count
功能。试试看“122122”。数一数(“122”)!