作业:用Python完成购物车操作

题目

在这里插入图片描述

解答

第1问

products = [["iphone", 6888], ["macpro",14800],["小米6",2499],["coffee",31],["book",60],["nike",699]]

#自己的代码
print("-"*6+"  "+"商品类别"+"  "+"-"*6)
for a in range(0, 6):  # 0可以省略不写
    b = products[a][0]
    c = products[a][1]
    print("%d" % a, end="\t")
    print("%s" % b, end="\t")
    print("%s" % c)

#别人的答案
print("-"*5, "\t", "商品列表", "\t", "-"*5)  # "\t"表示缩进,相当于4个空格
for i in range(6):
    print(i, end="\t")
    print(products[i][0], end="\t")  # print里头不仅仅可以是字符串,也可以是变量名,如果是变量名,就不必使用占位符
    print(products[i][1])

第2问

#自己的原始代码
products = [["iphone", 6888], ["macpro",14800],["小米6",2499],["coffee",31],["book",60],["nike",699]]

i = 0
d = []
while i <= 5:  # 不断询问客户想买什么,因为只有6件商品,所以最多问6次
    a = (input("请您选择一个商品编号:"))
    while a == "q":  # 自己的想法是当客户输入q,就退出循环,但是这么写不会影响1级while循环的运行,就会导致1级while循环会循环6次,即使出现了q也无济于事
        break
    d.append(a)
    i += 1
print(d)

d = int(d).sort()
for d1 in d:
    print("-" * 5, "\t", "商品列表", "\t", "-" * 5)
    print(d1, end="\t")
    print(products[d1][0], end="\t")
    print(products[d1][1])

#修改后的代码
products = [["iphone", 6888], ["macpro", 14800], ["小米6", 2499], ["coffee", 31], ["book", 60], ["nike", 699]]
i = 0
shopping_numbers = []
money = []
while i <= 5000:  # 若是极端情况下,消费者选购次数超过了5000次,其实这里替换成无限循环更恰当,比如 while 1,记得后面一定少不了break
    a = input("请您选择一个商品编号(请输入0-5,输入q为结束选购):")
    if a in ["0", "1", "2", "3", "4", "5"]:
        shopping_numbers.append(int(a))
    elif a not in ["0", "1", "2", "3", "4", "5"] and a != "q":
        print("您输入的商品编码本店已售完或无该商品,请重新选购!谢谢!")
    else:
        print("-" * 5, "\t", "商品列表", "\t", "-" * 5)
        for number in shopping_numbers:
            print(number, end="\t")
            print(products[number][0], end="\t")
            print(products[number][1])
            money.append(products[number][1])
        money_total = sum(money)
        print("合计金额为:%d 元" % money_total)
        break


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值