如何修改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
相关产品推荐
相关产品推荐

