首先,你给出的宽度太小,尝试增大宽度: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(' ',' '))
|