luck78 发表于 2021-9-26 22:15:33

列表题目

根据商品信息,选择商品并打印出清单

shop_cost=[]
package=[]
products =   [["iphone",6888],["MacPro",14800],["小米6",2499],["Coffee",31],
            ["Book",60],["Nike",699]]
for index,i in enumerate(products):
    #先打印商品信息
    print("%s%s   %s"%(index,i,i))

while True:
    temp= input("请根据商品编号,选择您所需要的商品,退出请按q:")
    if temp == "q":
      print("购物结束")
      break
    choic_= int(temp)   # 将字符串转化成整数
   
    if choic_ >len(products):
      print("输入的商品编号不存在!",temp)
    else:
      package.append(products)
      shop_cost += products
   
   

print("----------以下是您的购物清单----------")
for index,y in enumerate(package):
    print("%s%s   %s"%(index,y,y))

print("总计金额:",shop_cost)
   

print("----------谢谢您的购物,欢迎下次光临!----------")


shop_cost += products这步出错TypeError: 'int' object is not iterable,不清楚为什么

jackz007 发表于 2021-9-26 22:42:43

本帖最后由 jackz007 于 2021-9-26 22:48 编辑

      第20行代码
      shop_cost += products
      改为
      shop_cost . append(products)
      此外,第26行代码
    print("%s %s   %s" % (index , y , y))
      改为
    print("%d%s   %s" % (index + 1 , y , y))
      会好一些

luck78 发表于 2021-9-26 22:58:12

jackz007 发表于 2021-9-26 22:42
第20行代码

      改为


谢谢修改,解决了运行问题

冬雪雪冬 发表于 2021-9-26 23:00:30

第一行shop_cost=[]
改为
shop_cost=0

benyazi 发表于 2021-9-26 23:14:49

shop_cost=[]
shop_cost += products
用一个列表加一个int整数,做什么,直接shop_cost=0不就可以了吗?

luck78 发表于 2021-9-27 13:38:20

冬雪雪冬 发表于 2021-9-26 23:00
第一行shop_cost=[]
改为
shop_cost=0

谢谢,终于发现了...

微热懂一夏 发表于 2021-10-5 16:36:45

16,17行也有问题吗?
我输入索引6的时候直接报错“IndexError: list index out of range”并未打印“输入的商品编号不存在”

luck78 发表于 2021-10-8 10:42:19

微热懂一夏 发表于 2021-10-5 16:36
16,17行也有问题吗?
我输入索引6的时候直接报错“IndexError: list index out of range”并未打印“输入 ...

是哦。。。为什么呢
页: [1]
查看完整版本: 列表题目