python中制表符的使用

问题遇到的现象和发生背景

请问为什么我在使用制表符的时候为什么无法对齐呢,只有一行是对不齐的。

问题相关代码,请勿粘贴截图

products=[["iphone",6888],["MacPro",14800],["coffee",32],["abc",2499],
["Book",60],["Nike",699]]
print("-"*10+"商品列表"+"-"*10)
i=0
for product in products:
print(i, end="\t")
for a in product:
print(a,end="\t")
print("\n")
i+=1

运行结果及报错内容

结果内容微调

0 iphone 6888

1 MacPro 14800

2 coffee 32

3 abc 2499

4 Book 60

5 Nike 699


products=[["iphone",6888],["MacPro",14800],["coffee",32],["abc",2499],
["Book",60],["Nike",699]]
print("-"*10+"商品列表"+"-"*10)


i = 0
for product in products:
    print('{0}\t{1}\t{2}'.format(str(i), product[0], str(product[1])))
    i = i+1

有两种方法可以达到你想要的效果:

  • 第一种:
    在你代码的基础上,添加格式化输出+制表符\t
products=[["iphone",6888],["MacPro",14800],["coffee",32],["abc",2499],["Book",60],["Nike",699],["MacPro",45600],["coffee",432],["abc",244499],["Book",6230],["Nike",61299],["MacPro",14800],["coffee",32],["abc",2499],["Book",60],["Nike",699]]
print("-"*10+"商品列表"+"-"*10)
i=0
for product in products:
    print(i, end="\t")
    for a in product:
        print("%-10s"%(a),end="\t")
    i+=1
    print()

输出结果:

img

  • 第二种:
    格式化输出+format()
products=[["iphone",6888],["MacPro",14800],["coffee",32],["abc",2499],["Book",60],["Nike",699],["MacPro",45600],["coffee",432],["abc",244499],["Book",6230],["Nike",61299],["MacPro",14800],["coffee",32],["abc",2499],["Book",60],["Nike",699]]
print("-"*10+"商品列表"+"-"*10)
i=0
for product in products:
    print('{:<6}\t{:<10}\t{:<10}'.format(str(i), product[0], str(product[1])))
    i = i+1

输出结果:

img

代码说明:
<表示左对齐,10表示共占10个字符,你可以按自己需要去修改占用的字符数