下面是我的函数应该做的:将两个字符串作为参数(一个字符串和一个或多个字母(作为输入,并查找字符串中一个或几个字母的出现次数。它也必须是一个函数。我做错了什么,如果我输入一个字母,它是正确的,但如果输入倍数,那么计数是错误的?
预期输入:"你好"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)
如果您想了解如何自己实现这一点,我会尝试创建两个变量count
和substr_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]