|
发表于 2025-2-21 19:40:53
|
显示全部楼层
首先,你给出的宽度太小,尝试增大宽度:
- for each in bookData:
- print("{:^5}{:^20}{:^15}{:^6}".format(each['id'],each['bookName'],each['publisher'],each["Price"]))
复制代码
其次,一个中文字符与一个英文字符显示出来的 宽度/大小 不同,中文字符明显要 宽/大 ,这就注定了不可能简单地让它对的非常齐。
- 1 资本论(第一卷) 人民出版社 90
- 2 中华人民共和国简史 上海人民出版社 40
- 3 百年大党正年轻 东方出版社 68
- 4 零基础学Python3.0(全彩版) 吉林大学出版社 79.80
- 5 给Python点颜色 青少年学编程 人民邮电出版社 59.80
复制代码
这就是修改后的效果,对的齐了一些。
但如果追求完美的话,建议将英文字母、标点、空格全部替换为相应的全角字符:
- 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("{:^5}{:^20}{:^15}{:^6}".format(each['id'],each['bookName'],each['publisher'],each["Price"]).replace(' ',' '))
复制代码
|
|