伪猫

导航

初学者的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("输入错误")

 

posted on 2016-08-25 14:30  伪猫  阅读(122)  评论(0)    收藏  举报