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

Python格式化print语句实现Count/Sum/Average数值列对齐输出

Python数值统计脚本print排版对齐方案

问题描述

编写Python无限循环数值统计脚本时,需要实时累计计算计数(Count)、总和(Sum)、平均值(Average)。原print语句直接拼接字段和数值,输出内容横向混排,需要达到以下排版要求:

  • 表头Count/Sum/Average固定显示在上方
  • 每轮计算的数值与表头按列对齐,数值保留2位小数,对齐效果匹配参考样例(计数为4时,总和335.00、平均值83.75)
  • 循环结束后输出的总和、平均值结果也和上方列对齐

实现代码

直接用Python自带的f-string格式化功能,给每列设置固定宽度、指定对齐方式和小数位数即可,不需要安装第三方库。修改后的完整代码如下:

total_sum = 0
count = 0
header_printed = False  # 标记表头是否已打印,避免重复输出

while True:
    data = input("Enter a number or press Enter to quit: ")
    if data == "":
        break
    total_sum += float(data)
    count += 1
    average = total_sum / count

    # 第一次输入有效数值时先打印表头
    if not header_printed:
        # 三列分别设置宽度为10、12、10,统一右对齐
        print(f"{'Count':>10}{'Sum':>12}{'Average':>10}")
        header_printed = True
    
    # 数值列和表头保持同宽,浮点数统一保留2位小数
    print(f"{count:>10}{total_sum:>12.2f}{average:>10.2f}")

print("-"*38)
if count > 0:
    final_average = total_sum / count
    # 汇总行标签占固定宽度左对齐,数值部分和上方列位置对齐
    print(f"{'The sum is':<12}{total_sum:>10.2f}")
    print(f"{'The average is':<12}{final_average:>10.2f}")

格式说明

  • {内容:>n}表示内容右对齐,总共占用n个字符宽度,同列设置相同宽度就能自动对齐
  • .2f表示浮点数保留2位小数,和参考样例的335.00/83.75格式完全匹配
  • 表头仅打印一次,不会因为循环重复输出打乱排版
  • 注:原代码用Sum做变量名会覆盖Python内置的求和函数,修改为total_sum避免潜在问题

参考输出效果

Enter a number or press Enter to quit: 100
Enter a number or press Enter to quit: 85
Enter a number or press Enter to quit: 70
Enter a number or press Enter to quit: 80
Enter a number or press Enter to quit: 
     Count         Sum   Average
         4      335.00     83.75
--------------------------------------
The sum is     335.00
The average is  83.75

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 06:15:43