使用for,in和return计算出现次数

时间:2018-03-11 02:09:31

标签: python loops if-statement

我一直在尝试为这个程序编写代码一段时间,但我无法理解。我很迷茫。我很感激帮助:

编写一个带两个字符串的函数。第二个字符串应该只有一个字符长。该函数应返回第一个字符串中第二个字符串出现的次数。

您将需要:

带参数的函数声明。 一个for循环。 一个if语句。 退货声明。

到目前为止我所拥有的:

string_one = "I love coding!" 
string_two = "I" 
if string_two in string_one: print "Hi"

2 个答案:

答案 0 :(得分:1)

考虑到您提供的代码,如果string_two位于string_one中,则确实有效,这意味着您的if条件正确无误。但是,它只会运行一次,因此如果在string_two中多次出现string_one,它将忽略所有其他出现并仅打印Hi一次。因此,您需要将if条件添加到for循环中,以捕获string_twostring_one的所有出现。

string_one = "I love coding!" 
string_two = "o"  # changed to 'o' since it has more than 1 occurence in string_one
for letter in string_one:  # look at each letter in string_one, one after another
    if string_two in letter:  # also possible: if string_two == letter
        print "Hi"  # print Hi when the letter is found

根据您的任务,现在要做的就是将此代码包装到具有两个参数的函数中(理想情况下,一个参数称为sentence,另一个参数称为character或类似)并返回一些内容。但是,我会把这一点告诉自己,祝你好运! :)

答案 1 :(得分:0)

首先,请注意,可以使用str.count(thing_to_count)解决此问题。这就是你应该使用的一般情况,但我在这里看到你可能在一个分配上寻求帮助(一般不鼓励Stack Overflow,但我个人没有问题)。无论如何,这是我为此制作的代码。

def count_in_string (sentence, thing_to_count):
    times = 0
    for word in sentence:
        for letter in word:
            if letter == thing_to_count: times += 1
    return times

所以:

  1. count_in_string声明为带有参数sentencething_to_count的函数。
  2. times设置为thing_to_count_sentence出现的次数(到目前为止为0)。
  3. 遍历每个单词,然后在句子中写字。
  4. 查看该字母是否为thing_to_count,如果是,请将{1}添加到times
  5. 返回times作为结果。