Python For循环函数未返回正确的输出
我正在写一个程序,看看一个3位数的子字符串在一个字符串中出现了多少次。例如,子字符串“122”将在字符串“122122”中显示2次。但是,每当我运行它时,它都返回0,即使子字符串确实出现。你能告诉我我的功能有什么问题吗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:
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)
。Noreturn
函数?它不返回0,而是返回None
。您必须在最后返回计数!您也可以只使用内置的count
功能。试试看“122122”。数一数(“122”)!