Python中如何让for循环返回计算结果列表而非仅打印输出
解决方案
修改后完整代码
import math # 原有变量定义 packs_purchased = (10, 6, 36) dice_purchased = (2, 0, 1) board_games_purchased = (3, 2, 0) prices = (4.25, 125, 11, 50) # 初始化空列表存储计算结果 packs_spent_list = [] # 遍历购买记录计算消费金额 for p in packs_purchased: if p < 35: current_spent = p * prices[0] else: current_spent = (int(math.floor(p / 36)) * prices[1]) + ((p % 36) * prices[0]) packs_spent_list.append(current_spent) # 按要求格式化输出 output = "packs_spent(" + ", ".join(["%.2f" % item for item in packs_spent_list]) + ")" print(output)
运行后输出结果为:packs_spent(42.50, 25.50, 125.00)
核心修改说明
- 补充
import math语句,解决原代码调用math.floor未导入模块的报错问题 - 初始化空列表
packs_spent_list,用于存储所有计算结果 - 调整循环变量名为
p,避免和原元组变量packs_purchased重名导致原始数据被覆盖 - 单次计算完成后将结果追加到列表中,替换原有的逐行打印逻辑
- 最后通过列表推导式将所有数值格式化为两位小数,拼接为要求的输出格式
如果后续需要使用计算结果做其他运算,可直接使用packs_spent_list,也可以转为元组存储:packs_spent = tuple(packs_spent_list)
内容的提问来源于stack exchange,提问作者Celina
相关产品推荐
相关产品推荐

