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

Python控制台循环执行时如何使用tabulate打印格式化表格

用tabulate替换pandas实现控制台表格打印

你原来的代码在循环内逐行生成DataFrame打印,会输出21个带重复表头的零散小表格,不管用pandas还是tabulate都建议先收集全量数据再一次性输出,表格观感会好很多,替换步骤如下:

  • 先安装tabulate依赖,执行命令:pip install tabulate
  • 移除代码里没用到的numpy、pandas导入,替换为导入tabulate的tabulate方法
  • 循环外初始化空列表存储所有行的计算结果
  • 循环内完成数值计算后,把单行结果追加到数据列表中,不要在循环内执行打印
  • 所有数据计算完成后,调用tabulate()传入数据、指定表头、选择表格样式,一次性打印整表

调整后的完整代码(推荐:一次性打印全表)

from tabulate import tabulate

z = 10119011
a = 17
c = 43
m = 499
# 存储所有行数据
table_data = []
# 定义表头
headers = [
    'Random Number Integer',
    'Uniform Random Number',
    'Penggunaan Pertamax/hari'
]

for i in range(0, 21):
    LCG = ((a*z)+c) % m
    z = LCG
    u = z/m
    hasil = 700 + u * (1500-700+1)
    # 把当前行结果追加到数据列表
    table_data.append([z, u, hasil])

# 打印表格
print(tabulate(table_data, headers=headers, tablefmt='grid', floatfmt='.6f'))

参数说明

  • floatfmt='.6f':指定浮点数保留6位小数,和pandas默认打印的浮点数精度对齐,可按需调整保留位数
  • tablefmt:支持切换多种表格样式,常用可选值:
    • simple:默认轻量样式,适合纯文本日志输出
    • grid:全边框表格,对齐清晰,控制台观感最好
    • psql:类PostgreSQL命令行的表格线样式
    • plain:无任何边框的纯文本对齐格式

如果你一定要保留原来逐行打印的逻辑,也可以在循环内每次把单行数据传给tabulate打印,只是输出的会是21个独立的单行小表格,写法如下:

from tabulate import tabulate

z = 10119011
a = 17
c = 43
m = 499
headers = [
    'Random Number Integer',
    'Uniform Random Number',
    'Penggunaan Pertamax/hari'
]

for i in range(0, 21):
    LCG = ((a*z)+c) % m
    z = LCG
    u = z/m
    hasil = 700 + u * (1500-700+1)
    print(tabulate([[z, u, hasil]], headers=headers, tablefmt='grid', floatfmt='.6f'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:30:56