无法使我的计数功能在Python中工作

use*_*975 2 python function python-3.x

我正在尝试创建一个函数,您可以在单词"banana"中添加诸如"ana"之类的短语,并计算它在单词中找到短语的次数.我找不到我正在制作的一些测试单元无法正常工作的错误.

def test(actual, expected):
    """ Compare the actual to the expected value,
        and print a suitable message.
    """
    import sys
    linenum = sys._getframe(1).f_lineno   # get the caller's line number.
    if (expected == actual):
        msg = "Test on line {0} passed.".format(linenum)
    else:
        msg = ("Test on line {0} failed. Expected '{1}', but got '{2}'.".format(linenum, expected, actual))
    print(msg)

def count(phrase, word):
    count1 = 0
    num_phrase = len(phrase)   
    num_letters = len(word)    

    for i in range(num_letters):
        for x in word[i:i+num_phrase]:
             if phrase in word:
                 count1 += 1
             else:
                 continue    
        return count1

def test_suite():
    test(count('is', 'Mississippi'), 2)
    test(count('an', 'banana'), 2)
    test(count('ana', 'banana'), 2)
    test(count('nana', 'banana'), 1)
    test(count('nanan', 'banana'), 0)
    test(count('aaa', 'aaaaaa'), 4)

test_suite()
Run Code Online (Sandbox Code Playgroud)

Mat*_*ttH 5

将您的count功能更改为以下测试:

def count(phrase, word):
    count1 = 0
    num_phrase = len(phrase)   
    num_letters = len(word)    
    for i in range(num_letters):
        if word[i:i+num_phrase] == phrase:
          count1 += 1
    return count1
Run Code Online (Sandbox Code Playgroud)