如何在Python while循环中保存递增数值并计算总和?
循环中列表仅保留最后一个元素的问题解决
你的问题核心在于列表初始化的位置错误:你把l = []写在了while循环内部,每次循环都会重新创建一个空列表,然后只添加当前的j值,循环结束后自然只剩最后一次计算的结果。
修正后的基础代码
def calc_cost(): x = 0 k = 34 j = 0 l = [] # 将列表初始化移到循环外部,确保全程使用同一个列表 while x <= k: x = x + 1 j = j + 5 l.append(j) # 每次循环往同一个列表追加元素 print(sum(l)) # 直接调用函数即可,避免外层print输出None calc_cost()
更简洁的优化写法
如果不需要保留列表,只想计算总和,可以直接用生成器表达式省略列表创建步骤:
def calc_cost(): # 循环35次(对应原逻辑中x从0到34的35次迭代),每次生成5的倍数 total = sum(5 * i for i in range(1, 36)) print(total) calc_cost()
内容的提问来源于stack exchange,提问作者JamesJames
相关产品推荐
相关产品推荐

