Python实现按部门列产品清单及总价值计算的代码运行问题求助
Python代码问题排查与修正
原代码核心问题
- 硬编码仅支持3个部门的场景,完全未使用输入的部门数量
qs、产品数量qp参数,当部门数不等于3时直接运行失败,不符合动态适配的需求 matrix(m,n,o)语法错误:numpy的matrix构造函数不支持直接传入多个一维数组生成矩阵,语法调用完全错误- 部门总价输出逻辑硬编码固定为3行,部门数量变化时无法输出对应结果
修正后可运行代码
from numpy import * qs = int(input()) # 读取部门数量 qp = int(input()) # 读取产品数量 sector_list = [] for idx in range(qs): # 读取当前部门的产品价目表 # 正式场景建议替换eval为array(list(map(float, input().split()))) 避免注入风险 price_arr = array(eval(input())) sector_list.append(price_arr) # 输出当前部门的价格总和 print(f"The total of sector {idx+1} is:", round(sum(price_arr)), "dollars") # 生成所有产品的价格矩阵并输出 price_matrix = matrix(sector_list) print(price_matrix)
逻辑说明
- 用循环动态读取对应数量的部门价目数据,适配任意输入的部门/产品数量,解决硬编码问题
- 先将所有部门的价目数组存入列表,再传入
matrix构造函数生成统一的价格矩阵,符合numpy语法要求 - 输出部门总价的逻辑随循环动态生成,不需要固定写死输出行数
内容的提问来源于stack exchange,提问作者Planeta Curioso
相关产品推荐
相关产品推荐

