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

如何修改Python代码实现打印统计表格保留三位小数且数值对齐表头

Python 统计表格输出格式调整方案

修改后完整代码

player = input("Player name:")
hits = int(input("Hits:"))
ab = int(input("At Bats:")) 
walks = int(input("Walks:")) 
hbp = int(input("Hit By Pitch:")) 
tb = int(input("Total Bases:"))

# 可选:增加除零校验避免运行错误
if ab <= 0:
    print("打数(At Bats)不能为0或负数")
else:
    ba = hits / ab
    oBp = (hits + walks + hbp) / (ab + walks + hbp)
    sLg = tb / ab
    iSo = sLg - ba
    oPs = oBp + sLg

    # 分设表头、数值两套格式化模板,各司其职
    header_format = '{name:<10}{avg:>7}{obp:>7}{slg:>7}{iso:>7}{ops:>7}'
    value_format = '{name:<10}{avg:>7.3f}{obp:>7.3f}{slg:>7.3f}{iso:>7.3f}{ops:>7.3f}'

    # 打印表头
    print(header_format.format(name='Player', avg='AVG', obp='OBP', slg='SLG', iso='ISO', ops='OPS'))
    # 分隔符长度匹配表头总宽度
    print('-' * 45)
    # 打印数值
    print(value_format.format(name=player, avg=ba, obp=oBp, slg=sLg, iso=iSo, ops=oPs))

核心调整说明

  • 三位小数控制:数值格式化模板直接内置.3f格式标记,所有统计值自动保留三位小数,无需额外转换
  • 对齐控制:
    • 姓名字段设置左对齐、固定占10位宽度,避免球员名字长度变化挤压后续列
    • 所有统计字段设置右对齐、固定占7位宽度,表头和数值的位置完全对应,无错位
    • 分隔符长度调整为和表头总宽度一致,视觉效果更统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:06