初学者的python学习笔记2——作业篇
这次的作业是商城展示,最开始的确是一脸懵逼,后来研究了一下网上的例子,总算是搞出来了一个(其实算是网上列子的简化版?)。
最开始是想要使用字典去做,发现显示列表的时候怎么也无法实现序号和名称对应,原因是因为字典本身是没有顺序的...之后换成了列表和索引值就顺畅下了许多。
li=[["手机",1000],["手表",2000],["铅笔",10],["橡皮",20]] #商品列表 cart=[] #购物车列表 print("欢迎来到购物商城!") qian=int(input("请输入您持有的金额:")) #这里有个问题是输入非数字会报错,其实应该做一个判断,如果输入数字再用int赋值一下,非数字打印提示,这个问题最后才发现,因为懒就省了一下…… xiaofei=0 yue=int(qian-xiaofei) while True: print("显示商品列表") for index,p in enumerate(li): #打印索引和列表 print(index,p[0],p[1]) bianhao=input("请输入商品编号,结算请输入:all,显示购物车请输入:list,显示余额请输入:free:") if bianhao.isdigit(): #判断输入是否为数字 bianhao=int(bianhao) bianhaoqian=int(li[bianhao][1]) if yue<0: print("您的余额不足") exit(1) else: while True: # nb=int(input("请输入购买数量:")) nb=int(input("请输入购买数量:")) if nb>99999: print("请输入正确的数量") break else: money1=int(nb*bianhaoqian) #算出购买的价格 if money1<yue: cart.append(li[bianhao][0]) #添加名称到购物车的列表 cart.append(nb) #添加数量到购物车的列表 print("您的商品:%s,数量:%s已经加入购物车"%(li[bianhao][0],nb)) yue=qian-money1 xiaofei +=money1 break else: print("余额不足") break elif bianhao=="list": nb=0 #这里把数量作为了列表的索引值 aa=len(cart) #购物车的数量 bb=int(aa/2) #因为购物车里还有数量的一项,所以除去一半就是商品的数量 for x in range(bb): print(cart[nb],"数量:",cart[nb+1]) #列表第一项和第二项 nb+=2 #因为每一个商品占2项,所以索引值+2 elif bianhao=="free": if not len(cart): print("您还没有购物,余额:%s"%(yue)) else: print("您花费了:%s,余额为:%s"%(xiaofei,yue)) elif bianhao=="all": if not len(cart): print("购物车为空!") break else: nb=0 #这里把数量作为了列表的索引值 aa=len(cart) #购物车的数量 bb=int(aa/2) #因为购物车里还有数量的一项,所以除去一半就是商品的数量 for x in range(bb): print(cart[nb],"数量:",cart[nb+1]) #列表第一项和第二项 nb+=2 #因为每一个商品占2项,所以索引值+2 gm=input("确认是否购买,y or n") if gm == "N" or gm=="n": print("购买取消,余额:%s"%(yue)) elif gm =="Y" or gm=="y": print("一共消费%s,剩余%s"%(xiaofei,yue)) break else: print("输入错误") break else: print("输入错误")
浙公网安备 33010602011771号