python - 为什么此函数返回“无”值?
问题描述
我尝试为递归函数编写代码,该函数将 x 值作为输入参数并打印 x 位严格递增的数字。例如x = 6
给出输出67891011
。
l = []
def recfun(x):
if x == 12:
for i in range(0,len(l)):
l[i] = str(l[i])
print(l)
return int("".join(l))
else:
l.append(x)
x += 1
recfun(x)
x = int(input('Enter a number: '))
y = recfun(x)
print(y)
我知道这不适用于除 6 以外的其他值。但打印的返回值显示None
.
输入:
Enter a number: 6
输出:
['6', '7', '8', '9', '10', '11']
None
请提出一些方法来克服这个问题。
解决方案
由于您已将返回值分配给 y 但您的递归不会在 else 语句中recfun(x)
返回 任何替换return recfun(x)
推荐阅读
- android - 错误:迁移到 androidx 后找不到符号类 MediaStyle
- flutter - 如何使所有列表视图同时可滚动?
- android - 如何使用 MVVM 架构实现 Firebase Google SignIn?
- swift - 在外面点击时如何关闭我的幻灯片菜单?
- node.js - 如何配置 VSCode 的 Organize Imports 顺序?
- r - 分解没有周期性错误的动物园对象
- amazon-s3 - terraform,s3 存储桶策略
- android - getDownloadUrl() 不工作,“HTTP 未知错误”
- javascript - 字符串拆分管道在 Mirth 连接 JavaScript 中不起作用
- ruby-on-rails - 缓存文件的 Errno::ENOENT