You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现输入列A/B后计算列C/D/E并求列C/D平均值

修正Python终端数据计算与输出代码

原代码核心问题

  • 变量初始化错误:columnC初始化为列表columnB,后续累加操作触发类型错误;columnD直接执行列表减法,Python不支持该操作。
  • 打印逻辑错误:将字符串拼接代码作为文本输出,而非实际计算并拼接数值。
  • 输入格式错误:input()内的字符串包含换行,导致语法报错。
  • 数据存储混乱:empty2同时存入columnD和columnE,导致平均值计算结果错误。
  • Column E无计算逻辑:仅初始化空列表,未实现对应数值计算。

修正后的代码

def solve(columnA, columnB):
    # 打印表头,用制表符对齐保证格式整齐
    print("Class\tColumnA\tColumnB\tColumnC\tColumnD\tColumnE")
    col_c_list = []
    col_d_list = []
    col_e_list = []
    
    for idx in range(len(columnA)):
        # 替换为你实际需要的计算逻辑,示例为基础加减乘运算
        col_c = columnA[idx] + columnB[idx]
        col_d = columnA[idx] - columnB[idx]
        col_e = columnA[idx] * columnB[idx]
        
        # 打印每行数据,用制表符对齐
        print(f"{idx+1}\t{columnA[idx]}\t{columnB[idx]}\t{col_c}\t{col_d}\t{col_e}")
        
        # 存储数据用于后续平均值计算
        col_c_list.append(col_c)
        col_d_list.append(col_d)
        col_e_list.append(col_e)
    
    return col_c_list, col_d_list, col_e_list

# 获取类别数量
class_num = int(input("Enter the number of Classes: "))
column_A = []
column_B = []

# 循环获取每类的Column A和Column B数值
for i in range(class_num):
    a_val = int(input(f"Enter the number for Column A {i+1}: "))
    b_val = int(input(f"Enter the number for Column B {i+1}: "))
    column_A.append(a_val)
    column_B.append(b_val)

# 执行计算并获取结果
c_list, d_list, e_list = solve(column_A, column_B)

# 计算并打印平均值,保留两位小数提升可读性
print(f"\nAverage of Column C: {sum(c_list)/len(c_list):.2f}")
print(f"Average of Column D: {sum(d_list)/len(d_list):.2f}")

关键修改说明

  1. 计算逻辑修正:明确每列的计算规则(示例为基础运算,可按需替换),避免列表与数值的错误运算。
  2. 格式化输出:用\t制表符对齐表头与数据,保证终端输出整齐;改用f-string实现字符串拼接,避免语法错误。
  3. 输入逻辑修正:移除输入字符串中的换行,用f-string简化输入提示文本。
  4. 数据存储优化:用三个独立列表分别存储Column C、D、E的结果,确保平均值计算准确。
  5. 平均值格式化:保留两位小数输出,提升结果可读性。

内容的提问来源于stack exchange,提问作者goldraker34

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:10:32