出于督促自己学习以及未来回顾和分享的目的,记录一下自己的学习过程。
B站视频号:BV12E411A7ZQ
ep8&9. 列表,课后作业为:
代码实现:
# -*- coding = utf-8 -*-
# @Time : 5/11/21 2:33 pm
# @Author: YS
# @File : 列表练习.py
# @Software: PyCharm
# 打印出六件商品的列表,每一个商品的编号、品名、价格作为一行,并根据列表写出循环,不断询问客户想买什么,用户选择商品编号则把对应的商品添加到购物车,最终用户输入q退出时,打印购买的商品列表。
# 打印商品列表
products =[["iPhone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]] # 商品数据
print("-"*6, "\t", "商品列表", "-"*6) # 表头
index = 0 # 商品编号
for product in products:
print(index, "", product[0], " "*(8-len(product[0])), product[1])
# 尽量格式按照作业要求,但是小米6的格式问题没法解决,因为中文字在len()中仅算作一个长度,可以单独微调,较为繁琐故忽略
index += 1
# 购物车
no = 1
cart = [] # 空购物车
# consumer = input("请问你需要买什么,请直接输入商品编号,或者输入q退出购买:")
test = ["q", "0", "1", "2", "3", "4", "5"] # 仅六个编号或q为有效输入
while 1:
consumer = input("请输入商品编号(0-5)或q退出购买:")
while consumer in test:
if consumer == "q":
break
cart.append(int(consumer))
print("输入有效!")
consumer = input("请重新输入商品编号(0-5)或q退出购买:")
else:
print("输入无效!")
if consumer == "q":
break
# 要求已经全部实现。用户输入任意内容均可顺利识别并继续程序。
if len(cart) > 0:
for good in cart:
print(no, products[good][0], products[good][1])
no += 1
else:
print("什么都没买")