Python 3如何将for循环输出值作为函数返回值返回
问题根因
- Python函数未显式定义return语句时,默认返回值为
None,这是注释掉函数内print语句后,变量赋值得到None的核心原因 - 若将return写在for循环内部,第一次迭代触发return时就会直接终止函数运行,因此只会返回第一个计算值2
- 若在循环外return单个变量z,或是用全局变量存储z,循环每一轮迭代都会覆盖z的旧值,最终只会保留最后一次计算的结果4,无法得到完整的结果序列。
修改方法
在函数内初始化一个列表作为存储容器,循环过程中把每一次的计算结果追加到列表中,等整个循环执行完成后,再返回这个完整的列表即可。
参考代码:
def adds(y): res = [] for i in y: z = i + 1 res.append(z) return res x = [1, 2, 3] p = adds(x) print(p)
运行后输出为[2, 3, 4],和预期结果一致。
如果想要更精简的写法,可以直接用列表推导式实现相同逻辑:
def adds(y): return [i + 1 for i in y]
内容的提问来源于stack exchange,提问作者Kalious Linoox
相关产品推荐
相关产品推荐

