当我运行此代码时,(打印)功能不起作用

时间:2019-06-15 06:28:50

标签: python python-3.x

运行此代码时,print函数不起作用,因此我尝试将其移动并检查是否有任何错误,但根本不起作用。

def is_substring(small,big):
    count=0

    for move in range(len(big)):

        if big[move:move+len(small)] == small:
            return True
            count+=1

    return False


    print(f"we found {count} similar words")


is_substring('hi','hi and Hello or hi')

3 个答案:

答案 0 :(得分:7)

在调用打印之前,您似乎return正在使用。

return 'something'

将退出函数,将'something'返回到函数调用的来源,因此return True之后将跳过任何内容。

尝试在所有循环后仅检查count的值:

def is_substring(small,big):
    count=0    
    for move in range(len(big)):
        if big[move:move+len(small)] == small:
            count+=1

    print(f"we found {count} similar words")
    return count != 0

is_substring('hi','hi and Hello or hi')

答案 1 :(得分:0)

除了{Tim已回答return的问题之外,您还可以使用Built-in Functions来简化代码。

总结所有等于len(small)的{​​{1}}长度的子字符串-在生成器上使用sum( ),仅生成适合您的small文本的子字符串:< / p>

small

text =(“有关版本3+特有的关于Python编程的问题,”        ”。如果您的问题“        “不是特定于版本的。对Python 2问题使用[python-2.x]标记。”)

def count_substring(text,small):
        len_small = len(small)

        #  xt[i:i+len_small] == small  is a boolean, which evaluates to 1 if True else 0 
        return sum( text[i:i+len_small] == small for i in range(len(text)-len_small) )

输出:

print(count_substring(text,"python"))
print(count_substring(text,"the"))
print(count_substring(text,"c#"))

由于内置,而且由于我最多只检查2 3 0 -使用更少的迭代,所以这有点短。无论如何,之后的切片比range(len(text)-len_small短。您可以通过比较small

来获得is_substring(..)部分

({count_substring(text,"c#") > 0来自https://stackoverflow.com/questions/tagged/python-3.x

答案 2 :(得分:0)

var arr = new object[] {0, string.Empty, null};

我认为这也可以为您提供帮助。

您具有布尔类型return并计算相似的长字符串单词和短单词。