如何仅打印或返回Python循环迭代结束后的最终计算值?
代码修改实现方案
问题原因
你的代码中multiply函数定义、打印语句都缩进在while循环的代码块内,属于循环体的执行逻辑,因此每轮迭代都会执行一次打印,输出中间过程的结果。
修改后完整代码
# 阶乘计算函数提前定义,避免循环内重复声明 def multiply(mlist): result1 = 1 for z in mlist: result1 = result1 * z return result1 x = int(input("enter ")) y = [] while x > 0: y += [x] x = x-1 # 打印语句放在循环结束后,仅输出最终结果 print(y) print(multiply(y))
核心修改点
- 将
multiply函数的定义移到while循环外部,避免每轮循环重复定义函数,减少不必要的性能开销 - 调整两个
print语句的缩进等级,和while语句保持同级,仅在循环完全执行完成后打印一次最终的列表和阶乘结果
效果验证
输入整数3时,输出结果和需求完全一致:
[3, 2, 1] 6
内容的提问来源于stack exchange,提问作者B.LeeN
相关产品推荐
相关产品推荐

