Python 当我运行此代码时,(print)函数不';行不通

Python 当我运行此代码时,(print)函数不';行不通,python,python-3.x,Python,Python 3.x,当我运行这段代码时,print函数不起作用,所以我试着移动它,检查是否有任何错误,但它根本不起作用 def是_子字符串(小,大): 计数=0 对于移入范围(len(大)): 如果大[移动:移动+镜头(小)]==小: 返回真值 计数+=1 返回错误 打印(f“我们发现{count}个类似的单词”) is_子字符串('hi'、'hi and Hello或hi') 在调用print之前,您似乎正在返回 返回“某物” 将退出函数,将'something'传递回函数调用的来源,因此返回True跳过后面的任

当我运行这段代码时,
print
函数不起作用,所以我试着移动它,检查是否有任何错误,但它根本不起作用

def是_子字符串(小,大):
计数=0
对于移入范围(len(大)):
如果大[移动:移动+镜头(小)]==小:
返回真值
计数+=1
返回错误
打印(f“我们发现{count}个类似的单词”)
is_子字符串('hi'、'hi and Hello或hi')

在调用print之前,您似乎正在返回

返回“某物”

将退出函数,将
'something'
传递回函数调用的来源,因此
返回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')

除了@Tim已经回答的
return
问题之外,您还可以使用简化代码

将所有
len(small)
-长度等于
small
-的子字符串进行汇总-在仅提供适合
small
文本的子字符串的生成器上使用:

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) )
text=(“有关特定于版本3+的Python编程的问题” “语言的。如果您有问题,请使用更通用的[python]标记” “不是特定于版本的。请使用[python-2.x]标记来回答python 2问题。”)

输出:

2
3
0
由于内置的原因,这有点短,因为我只使用较少的迭代来检查
范围(len(text)-len_small
。之后的切片比
small
更短。通过比较
count_子字符串(text,“c”)0,可以得到
is_子字符串(…)
部分

文本
取自)

我想这对你也有帮助


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

您好,欢迎使用Stackoverflow。您的代码应该做什么?它打印什么?它应该打印什么?这种类型的字符串格式是从python 3.6版引入的。请确保已安装最新版本。在安装后也返回true增加计数变量。
print(f“我们发现{count}个相似的单词”)位于<代码>返回< /代码>语句,因此无法访问。如已指出的问题是,您的代码>打印< /代码>是不可达的。我建议您考虑使用Python LTENS。例如,当我在代码上使用<代码> pyLIt3</代码>时,它告诉我<代码> w:13, 4:不可达代码(不可达)。
意味着第13行的代码是不可访问的(以及显示一些其他问题,但是关于样式而不是问题-例如,您应该在后面使用空格,等等)
2
3
0
def is_substring(small,big):
    count=0
    big=big.split()
    for word in big:
        if word == small:
            count+=1
    print(f"we found {count} similar words")
    return bool(count)

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