鱼C论坛

 找回密码
 立即注册
查看: 99|回复: 11

萌新求助,如何让每列的数据对齐输出呢?

[复制链接]
发表于 前天 20:49 | 显示全部楼层 |阅读模式
60鱼币

我的运行结果:

                               
登录/注册后可看大图



效果图:

                               
登录/注册后可看大图

需要用到的字符串:
┌───┬───────────────┬───────┬─────┐
└───┴───────────────┴───────┴─────┘
需要用到的元组:

fieldName=("商品id","图书名称","出版社","价格")
bookData = (
    {"id": "1", "bookName": "资本论(第一卷)",
     "publisher": "人民出版社", "Price": "90"},
    {"id": "2", "bookName": "中华人民共和国简史",
     "publisher": "上海人民出版社", "Price": "40"},
    {"id": "3", "bookName": "百年大党正年轻",
     "publisher": "东方出版社", "Price": "68"},
    {"id": "4", "bookName": "零基础学Python3.0(全彩版)",
     "publisher": "吉林大学出版社", "Price": "79.80"},
    {"id": "5", "bookName": "给Python点颜色 青少年学编程",
     "publisher": "人民邮电出版社", "Price": "59.80"},
)
我的代码:
for each in bookData:
    print("{:^10}{:<17}{:^10}{:>5}".format((each['id']),(each['bookName']),(each['publisher']),(each["Price"])))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 昨天 11:49 | 显示全部楼层
我的运行结果:
    1     资本论(第一卷)           人民出版社      90
    2     中华人民共和国简史         上海人民出版社     40
    3     百年大党正年轻            东方出版社      68
    4     零基础学Python3.0(全彩版) 吉林大学出版社  79.80
    5     给Python点颜色 青少年学编程 人民邮电出版社  59.80
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 昨天 11:50 | 显示全部楼层
效果图:


                               
登录/注册后可看大图

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 昨天 11:51 | 显示全部楼层
效果图:

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 昨天 14:06 | 显示全部楼层
想要打印出来的是对齐的是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 昨天 14:23 | 显示全部楼层
3236654291 发表于 2025-2-22 14:06
想要打印出来的是对齐的是吗

不仅是对齐,还要打印成表格的形式输出
图片1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 昨天 14:24 | 显示全部楼层
2993554205 发表于 2025-2-22 14:23
不仅是对齐,还要打印成表格的形式输出

效果图可以下载
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 昨天 16:45 | 显示全部楼层
什么世纪难题,看了一下午还是太难了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 13 小时前 | 显示全部楼层
3236654291 发表于 2025-2-22 16:45
什么世纪难题,看了一下午还是太难了

最难受的一点是,我们老师不允许用库,只能用format 和自定义函数做,也是非常抽象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
2993554205 发表于 2025-2-23 08:35
最难受的一点是,我们老师不允许用库,只能用format 和自定义函数做,也是非常抽象

但是我感觉他那个|和上面的+不能对齐吧,因为中文数字英文的宽度都不一样,你中间加上的空格,导致的|偏移很难和+对齐的说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 6 小时前 | 显示全部楼层
3236654291 发表于 2025-2-23 09:01
但是我感觉他那个|和上面的+不能对齐吧,因为中文数字英文的宽度都不一样,你中间加上的空格,导致的|偏 ...

能对齐的,我们老师说什么用format格式化操作,用全角空格替换空余的部分。有点抽象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
如果逼真地模拟出截图中那种带“表格边框线”的效果,可以利用 Unicode 的制表符号(“┌”、“─”、“│” 等)。

思路:

  • 手动打印表格的上边框。
  • 打印表头行,利用合适的宽度对齐并在前后加 │。
  • 打印表头和内容之间的分隔线。
  • 逐行打印内容,每行都在前后及列与列之间用 │ 分割。
  • 最后打印表格底部边框。

参考代码:
fieldName = ("商品ID", "图书名称", "出版社", "价格")
bookData = (
    {"id": "1", "bookName": "资本论(第一卷)",
     "publisher": "人民出版社", "Price": "90"},
    {"id": "2", "bookName": "中华人民共和国简史",
     "publisher": "上海人民出版社", "Price": "40"},
    {"id": "3", "bookName": "百年大党正年轻",
     "publisher": "东方出版社", "Price": "68"},
    {"id": "4", "bookName": "零基础学Python3.0(全彩版)",
     "publisher": "吉林大学出版社", "Price": "79.80"},
    {"id": "5", "bookName": "给Python点颜色 青少年学编程",
     "publisher": "人民邮电出版社", "Price": "59.80"},
)

# 上边框
print("┌─────────┬─────────────────────────┬───────────────┬─────┐")
# 表头(注意列宽和对齐方式要与边框相匹配)
print("│{:^9}│{:^25}│{:^13}│{:^5}│".format(*fieldName))
# 表头分隔线
print("├─────────┼─────────────────────────┼───────────────┼─────┤")

# 内容行
for each in bookData:
    print("│{:^9}│{:<25}│{:^13}│{:>5}│".format(
        each['id'],
        each['bookName'],
        each['publisher'],
        each["Price"]
    ))

# 底边框
print("└─────────┴─────────────────────────┴───────────────┴─────┘")
这样就能打印出带线框的表格。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-23 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表