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'))