问题描述:
现有商品列表如下:
products = [[“iphone”,688],[“MacPro”,14800],[“小米6”.2499],[“Coffee”,31],[“Book”,60],[“Nike”,699],需打印出以下格式:
商品列表------
0 iphone 6888
1 MacPro 14800
2 小米6 2499
3 coffee 31
4 Book 60
5 Nike 699
2.根据上面的products列表写一个循环,不断询问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购买的商品列表。
**
**
按格式打印的时候,一开始使用的是"\t",输出效果差强人意
products = [["iphone",688],["MacPro",14800],["小米6",2499],["Coffee",31],["Book",60],["Nike",699]]
i = 0
while i <= 5:
print(i,end = " ")
for j in range(0,2):
print(products[i][j],end = "\t\t")
print("\n")
i += 1
学习使用了format函数(后面详细介绍用法),结果如下:
products = [["iphone",6888],["MacPro",14800],["小米6",2499],["Coffee",31],["Book",60],["Nike",699]]
i = 0
width = 8 #列表宽度
while i <= 5:
print(i,end = " ")
for j in range(0,2):
print("{:<{}}".format(products[i][j],width)) #调用format函数输出,调用完会自动换行
#print("\n")
i += 1
发现format函数调用完会自动换行,我的一行还没结束,因此对结尾用end进行格式化:
products = [["iphone",6888],["MacPro",14800],["小米6",2499],["Coffee",31],["Book",60],["Nike",699]]
i = 0
width = 8 #列表宽度
while i <= 5:
print(i,end = " ")
for j in range(0,2):
print("{:<{}}".format(products[i][j],width),end = "\t") #调用format函数输出,调用完会自动换行
print("\n") #一行输出完自动换行
i += 1
**
**
products = [["iphone",6888],["MacPro",14800],["小米6",2499],["Coffee",31],["Book",60],["Nike",699]]
shop = []
flag = 0
def show():
i = 0
width = 8 #列表宽度
while i <= 5:
print(i,end = " ")
for j in range(0,2):
print("{:<{}}".format(products[i][j],width),end = "\t") #调用format函数输出,调用完会自动换行
print("\n") #一行输出完自动换行
i += 1
show()
for j in range(0,6):
key = input("请输入所需物品的编号(0~5):(按q返回)\n")
if key == 'q':
print("您要购买的商品列表为:\n")
break
else:
flag += 1
shopnum = int(key)
print("您选购的产品是:%s"%products[shopnum])
shop.append(products[shopnum])
for k in range(0,flag):
print(k,end = "\t")
print(shop[k],end = "\n")
总结:
1.format函数的用法:
功能:实现对齐打印,需要注意的是,打印完会自动换行,如果后面还有打印需求,可用end对输出结果进行格式化
(1)左对齐
"{:<{}}".format("要输出的内容", 格式宽度) #format函数左对齐使用格式
实验代码:
width = 12 #定义宽度
for i in range(1,12,2):
print("{:<{}}".format("⭐" * i, width)) #format格式输出
(2)右对齐
"{:>{}}".format("要输出的内容", 格式宽度) #format函数右对齐使用格式
实验代码:
width = 12 #定义宽度
for i in range(1,12,2):
print("{:>{}}".format("⭐" * i, width)) #format格式输出
用"⭐"输出有点bug,我认为是这个特殊符号的内部编码问题
改用"+"
width = 12 #定义宽度
for i in range(1,12,2):
print("{:>{}}".format("+" * i, width)) #format格式输出
(3)居中对齐
"{:^{}}".format("要输出的内容", 格式宽度) #format函数居中使用格式
实验代码:
width = 12 #定义宽度
for i in range(1,12,2):
print("{:^{}}".format("⭐" * i, width)) #format居中格式输出