• 网站购物,使用pickle


    主程序,     
    
    #!/usr/bin/env python
    #_*_ coding:utf-8 _*_
    import pickle
    import os
    import sys
    import time
    import pickle
    dirname = os.path.dirname(os.path.dirname(__file__))
    sys.path.append(dirname)
    
    carshop = []
    pricelist = []
    
    shop = {
            'car':20000,
            'iphone':6000,
            'apple':20,
            'orange':15,
            'banana':10
    }
    
    
    def caradd():
        while True:
            for index,key in enumerate(shop.keys()):
                print index,'	',key,'		',shop[key]
            num = int(raw_input('请选在购买的商品ID,添加到购物车: '))
    
            if shop.keys()[num]:
                carshop.append([shop.items()[num],time.strftime("%Y-%m-%d %X", time.localtime())])
                print carshop
            else:
                print '请选择商品编号,或者您购买的商品不存在'
    
            name = raw_input('是否继续购物(y/n): ')
            if name == 'y':
                continue
            else:
                print '系统将返回到首页'
                return True
    
    def showcar():
        for index1,key in enumerate(carshop,1):
                pricelist.append(key[0][1])
                print index1,key[0][0]
    
    def price_sum():
        res1 = reduce(lambda x,y:x+y,pricelist)
        return  res1
    
    while True:
        print '''-------欢迎访问本商城------
            1  进行购物
            2  查看购物车
        '''
        choose = int(raw_input('请按照提示信息进行输入: '))
        if choose == 1:
            result = caradd()
            if result  == 'True':
                break
        elif choose == 2:
            if carshop:
                showcar()
                price = price_sum()
                print '您一共够买了',price
            else:
                print '你还没有购物,购物车为空'
    
            commitcar = raw_input('时候马上结算(y/n): ')
            if commitcar == 'y':
                username = int(raw_input('请输入信用卡账号: '))
                passwd = int(raw_input('请输入信用卡密码: '))
    
                with open('user_pass','r') as f:
                    data = pickle.load(f)
                for k,v in data.items():
                    print k,v
                    if k == username and passwd == v[0]:
                        print '将从信用卡中扣除商品金额'
                        salary = v[1]
                        if price > salary:
                            print '信用卡额度不足,无法购买商品'
                            break
                        else:
                            salary_new  = salary - price
                            print salary_new
                            v[1] = salary_new
                            with open('user_pass','w') as f:
                                pickle.dump(data,f)
                            print '支付成功,系统退出'
                            sys.exit()
                    else:
                        print '----------------------->'
            else:
                continue
    使用pickle生成user_pass文件
    
    
    #!/usr/bin/env python
    #_*_ coding:utf-8 _*_
    import pickle
    
    dic_pick = {
        123:[123,10000]
    }
    f  = open('user_pass','w')
    
    pickle.dump(dic_pick,f)
    f.close()
    
    
    
    ###############################
    #!/usr/bin/env python
    #_*_ coding:utf-8 _*_
    
    import pickle
    
    f = open('user_pass','r')
    data = pickle.load(f)
    print data
  • 相关阅读:
    切割窗口url
    软键盘弹出底部被顶上去
    C语言字符串处理标准库函数的源码(转)
    slapd配置文件详述
    OPENLDAP安装配置方法
    const成员函数
    OPENLDAP概述
    当前比较有名的Xml数据库
    『转』使用 Scalable Vector Graphics 为 ASP.NET 构建基于 XML 的灵活、轻量的图像
    SqlCommand_ExecuteNonQuery 方法返回值为1的解释
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/5246275.html
Copyright © 2020-2023  润新知