python - 为什么我的函数总是返回 None 而不是 True 或 False?
问题描述
我目前正在我的 Python 类中进行递归,我遇到了这个问题。这两个函数通过检查字符串 a 是否是字符串 b 的子字符串来协同工作。如果字符串 a 是字符串 b 的子字符串,则程序应该返回 True。如果不是,则返回 False。但是,当我尝试执行程序时,返回的唯一值是 None。我对该怎么做感到困惑。谢谢!
def is_subsequence(string_a, string_b):
pos_a = 0
pos_b = 0
contains_string(string_a, string_b, pos_a, pos_b)
def contains_string(string_a, string_b, pos_a, pos_b):
if(pos_a == len(string_a) - 1):
return True
if(pos_b == len(string_b) - 1):
return False
if(string_a[pos_a] != string_b[pos_b]):
pos_b = pos_b + 1
return contains_string(string_a, string_b, pos_a, pos_b)
if(string_a[pos_a] == string_b[pos_b]):
pos_a = pos_a + 1
pos_b = pos_b + 1
return contains_string(string_a, string_b, pos_a, pos_b)
else:
return False
解决方案
没有明确的,你的函数is_subsequence
将返回None
。这是所有函数的默认 Python 属性。将函数更改为:
def is_subsequence(string_a, string_b):
pos_a = 0
pos_b = 0
return contains_string(string_a, string_b, pos_a, pos_b)
推荐阅读
- javascript - 使用 javascript 而不是 JQUERY 将图像放入购物篮
- python - 使用 multiprocessing.pool.map 通过同一个套接字发送
- python - python:定义一个方法等于另一个
- reactjs - 如何强制酶使用 Typescript 设置的道具?
- c# - 某些 CMD 命令无法识别
- git - 如何从命令行创建 gitlab 项目
- openssl - 将证书从 .pem 文件复制到另一个
- entity-framework-core - 如何一次回滚多个 EF Core 迁移
- c++ - 如何在 C++17 中将“else-if”与初始化程序一起使用?
- macos - 有没有办法确定我的 macOS 机器上 docker 卷的大小?