我的函数以两个字符串作为参数作为输入,并在python中的一个字符串中找到它的出现.有几个字母的计数不正确



下面是我的函数应该做的:将两个字符串作为参数(一个字符串和一个或多个字母(作为输入,并查找字符串中一个或几个字母的出现次数。它也必须是一个函数。我做错了什么,如果我输入一个字母,它是正确的,但如果输入倍数,那么计数是错误的?

预期输入:"你好"ll";预期输出:1我的输出:0

def occurences(string1, string2):
count = 0
for word in string1:
for character in word:
count = count + 1
return count
first_string = input('Enter the first string: ')
second_string = input('Enter the second string: ')
occurance_var = occurences(first_string,second_string)
print(second_string,'ocures', occurance_var,'in', first_string)

@new_be_0905可以使用python 中的预定义字符串方法

你可以做一些类似的事情

str1 = "Hello"
str2 = "ll"
print(str1.count(str2)) # Output: 1

您的函数甚至不使用string2参数,所以我不清楚它应该如何工作。

如果您只需要字符串中子字符串的出现次数,则可以使用string.count(substring)

如果您想了解如何自己实现这一点,我会尝试创建两个变量countsubstr_index,然后循环字符串并检查是否为char == substr[substr_index]。如果是,则在substr_index中加1。当substr_index==len(substr)时,重置变量并将1添加到count

首先,当您进行时

for word in string1:

这个循环迭代string1中的每个字符,而不是每个单词。如果您想单独迭代每个单词,则需要拆分字符串。

第二,你从来没有真正在你的循环中进行比较。请注意,在occurrences((中的任何位置都不会调用string2。你的程序只是简单地计算每个字母,所以我不确定你是如何得到0的。

比较长度大于1的字符串最简单的方法是对字符串进行切片,类似

string[i:i+2]

最新更新