zoukankan      html  css  js  c++  java
  • python day2 购物车作业

    话不多说上代码。就是有一个小问题。注释刚刚已经打上去了

    #定义一个购物列表本来想存在文件中,但是后面碰到文件的一个问题
    shopping_list = [
            ['Iphone 6s plus',5800],
            ['Lumia',3800],
            ['Charge',45],
            ['Data line',35],
            ['MI 5 PRO',2299],
            ['MX4',1999],
    ]
    
    import time
    
    #  '%Y-%m-%d %X' 代表着 年-月-日- 分钟秒
    time_format= '%Y-%m-%d %X'
        #用time 模块 记录时间
    time_format=time.strftime(time_format)
    
    print(time_format)
    
    #定义一个函数
    def shooping():
    
        #消费金额的变量
        total = 0
    
        #工资
        salary = 100000
        #定义一个购物的空列表
        shop_list = []
        #进入循环
        while True:
            welcome_1 = "欢迎使用ATM购物商城"
            we_1 = welcome_1.center(30, '*')
            print(we_1)
            choice_1 = "1.注册 2.登陆 q.退出"
            ch_1 = choice_1.center(32, '*')
            exit_1 = "谢谢使用,欢迎下次光临"
            ex_1 = exit_1.center(30, '*')
            error_1 = "您输入的用户已存在,请重新输入"
            e_1 = error_1.center(30, '-')
            error_2 = "密码不能为空,请重新输入"
            e_2 = error_2.center(30, '-')
            error_3 = "您输入的密码太短,请重新输入"
            e_3 = error_3.center(30, '-')
            error_4 = "您的输入有误, 请重新输入"
            e_4 = error_4.center(26, '*')
            error_5 = " 您的账号已被锁定,请联系管理员 "
            e_5 = error_5.center(12, '*')
            print(ch_1)
            sr_1 = input("请输入你选择的项目:")
    
            #进入1 表示注册新用户
            if sr_1 == '1':
                while True:
    
                    #查看文件中有没有这个用户
                    with open('user.txt','r') as f_1:
                        #一行一行匹配
                        temp = f_1.readlines()
                        temp2=[]
    
                    for line in temp:
                        line=line.strip().split(':')
                        temp2.append(line[0])
                    user_choie=input("请输入你需要注册是用户名:")
                    success_1 = "成功创建用户:%s" % (user_choie)
                    #查看这个输入的用户是否存在已经注册的文件中
                    if user_choie in temp2:
                        print(e_1)
                    elif user_choie == 'exit':
                        break
                    #如果没有就输入密码
                    else:
                        password=input("请输入您的密码():")
                        password2=input("请再次输入你的密码:")
                        #两次密码一定要一样
                        if password==password2:
                            lenpass1 = len(password2)
                            lenpass=len(password)
                        else:
                            print("两次密码不正确。请重新输入")
                            break
                        #密码长度为0 就提示
                        if lenpass==0 and lenpass1 ==0 :
                            print(e_2)
                        elif lenpass>7 and lenpass1>7:
    
                            #如果符合条件就把用户添加到user.txt 中。
    
                            with open('user.txt','a') as f_2:
                                w_1='%s:%s:%s
    ' %(user_choie,password,salary)
                                f_2.write(w_1)
                                s_1=success_1.center(30,'-')
                                print(s_1)
                                break
    
                        else:
                            print(e_4)
    
            #如果用户输入的是2 就是登录
            elif sr_1=='2':
                flag=False
                while True:
    
                    user_choie2=input("请输入您的用户名:")
                    f_3=open('lock.txt','r')
                    #with open('lock.txt','r') as f_3:
    
                    #查看这个用是否被锁定
                    for line2 in f_3.readlines():
                        line2=line2.strip()
                        if user_choie2 in line2:
                            print("账户已经被锁定")
                            flag=True
                            f_3.close()
                            break
                    if flag==True:
                        break
                    #如果没有锁定就进入这个文件中查询
                    u=open('user.txt','r')
                    for uline in u.readlines():
                        #这个文件去除空格和其他的,已: 作为分割
                        user,password,mony=uline.strip().split(':')
                        #判断输入的用户名和文件中的用户名是否一样
                        if user_choie2 == user:
                            i=0
                            #如果一样就进入输入密码阶段
                            while i<3:
                                user_choie3=input("请输入你的密码:")
                                i +=1
                                if user_choie3 == password:
                                    print('欢迎%s登陆在线购物平台' % user_choie2)
                                    flag=True
                                    u.close()
                                    break
                                    #如果密码输入错误。就显示还有几次机会
                                else:
                                    if i>=3:
                                        #如果输入次数超过3次就将此用户锁定
                                        with open('lock.txt','a') as f_4:
                                            f_4.write(user_choie2+'
    ')
                                            f_4.close()
                                            exit("试了太多次,将被锁定,请联系管理员")
                                    print("输入错误还是有%s次机会"%(3-i))
                            break
                    else:
                        print("用户输入错误,请重新输入")
                        break
    
                    #用户登录之后就会出现这几个选项
                    while True:
                        print("1.购物 2.查看购物车 3.查询余额 4.充值 b.返回登陆 q.退出")
                        print("------------------------------------------------")
                        choice_2=input("请你输入你需要选择的序号")
                        flag_1 = False
    
    
                        #进入购物选项
                        while True:
                            if choice_2 == '1':
                                while True:
                                    #循环出 shopping_list 列表中的所有数据
                                    for index, line4 in enumerate(shopping_list):
                                        print(index,line4[0],line4[1])
                                    print('----------------------')
                                    print("c.查看购物车 b.返回 q.退出")
                                    print("-------------------------")
    
                                    choice_3=input("请输入你需要购买的商品序号").strip()
    
                                    #判断输入的是否为数字
                                    if choice_3.isdigit():
                                        choice_3=int(choice_3)   #如果为数字就改为int
                                        p_price=shopping_list[choice_3][1]  #查询当前商品的价格
                                        # 如果商品的价格小 yu 工资 就把当前的商品加入到空列表当中
                                        if p_price <= salary:
                                            shop_list.append(shopping_list[choice_3])
                                            #再把每次购买的商品的价格一起加起来
                                            total+=p_price
                                            #扣款
                                            salary-=p_price
                                            #把记录记录到文件当中
                                            f_6 = open('log.txt', 'a+',encoding="utf-8")
                                            p_item=shopping_list[choice_3]
                                            f_6.write("%s商品是:%s
    "%(time_format,p_item))
                                            #时刻把商品刷入硬盘当中.
                                            f_6.flush()
                                            print("你购买的商品是%s 你的余额为%s"%(p_item,salary))
    
                                            #如果商品价格大于工资,就买不起
                                        else:
                                            print("------------------")
                                            print("你的余额不足")
                                            print("-----------------")
                                        #输入c之后可以查看购物车的商品
                                    elif choice_3 =='c':
                                        while True:
                                            print("-------购物车-------")
                                            #print(shop_list)
                                            for index2,line5 in enumerate(shop_list):
                                                print(index2,line5)
                                            print("已消费金额%s"%(total))
                                            print("剩余金额%s"%(salary))
                                            print("----------------------")
                                            print("d.删除商品 b.返回购物 q.结算退出")   #这里有几个选项
                                            print("----------------------")
                                            user_choie4=input("请选择操作>>>>")
                                            #进入删除商品选项
                                            if user_choie4 =='d':
                                                print("-------------------------")
                                                for index2, line5 in enumerate(shop_list):
                                                    print(index2, line5)
                                                print("输入数字为删除商品,输入字母b为返回购物车")
                                                print("-------------------------")
                                                while True:
    
                                                    user_choie5=input("请选择:")
                                                    #首先输入的一定要为数字。这样子好做判断
                                                    if user_choie5.isdigit():
    
                                                        user_choie5=int(user_choie5)
                                                        # 查看删除的尚品的价格
                                                        d_price=shop_list[user_choie5][1]
                                                        #再从shop_list 列表中删除该选项
                                                        shop_list.remove(shop_list[user_choie5])
                                                        #消费金额减去删除尚品
                                                        total-=d_price
                                                        #工资加起删除尚品
                                                        salary+=d_price
                                                        print("你删除是商品是%s 可用的余额为%s"%(shop_list[user_choie5][0],salary))
                                                        print("-----------------------")
                                                    elif user_choie5=='b':
                                                        break
                                            elif user_choie4 =='b':
                                                flag=True
                                                break
    
                                                #打印出已经购买了的尚品
                                            elif user_choie4=='q':
                                                print("-------购物清单--------")
                                                for k,v in enumerate(shop_list):
                                                    print(k,v)
                                                print("已消费金额%s" % (total))
                                                print("剩余金额%s" % (salary))
                                                print("----------------------")
                                                exit(0)
                                            else:
                                                print("输入错误请重新输入")
                                        if flag==True:
    
                                            break
    
                                    elif user_choie3 == 'b':
                                        flag = True
                                        break
    
                                    elif user_choie3 =='q':
                                        exit("bye bye ")
    
                                    else:
                                        print("输入错误。请重新输入>>>")
    
                            #当输入2的时候打印出购物车中是尚品
                            elif choice_2 =='2':
                                print("-------购物车-------")
                                for index2, line6 in enumerate(shop_list):
                                    print(index2, line6[0], line6[1])
                                print("已消费金额%s" % (total))
                                print("剩余金额%s" % (salary))
                                print("----------------------")
                                break
                            #输入3的时候查询的是自己的余额 这里有点问题。
                            elif choice_2=='3':
                                with open("user.txt","r") as f_7:
                                    for i in f_7:
                                        user,password,mony=i.strip().split(':')
                                        mony=int(mony)
                                        print(mony)
                                        flag=True
                                        break
                                    break
                                    
                                    #这里添加不了
                            elif choice_2 == '4':
                                z=0
                                while z < 1:
                                    user_choie6=int(input("请输入金额:"))
    
                                    user_pass=input("请输入密码:")
                                    m=open("user.txt",'r+')
                                    m_1=m.readlines()
                                    for mline in m_1:
                                        user,password,mony=mline.strip().split(':')
                                        if user_pass == password:
                                            m_2=(user_choie6+int(mony))
                                            w_2='%s:%s:%s
    '%(user,password,m_2)
                                            m.write(w_2)
                                            print("充值成功!!!!")
                                            print(mony)
                                            flag=True
                                            break
                                        continue
                                    break
                                if flag==True:
                                    break
                            elif choice_2=='b':
                                flag=True
                                break
    
                            elif choice_2=='q':
                                exit(ex_1)
    
                    if flag==True:
    
                        break
            elif sr_1 =='q':
                exit("Bye bye ")
    
    
            else:
                print("请重新输入")
                print("                                 ")
    
    
    
    
    
    
    
    
    shooping()
    View Code
  • 相关阅读:
    网络基础
    SQL注入
    OpenID说明
    Linux网络编程
    Linux的僵尸进程产生原因及解决方法
    计算机系统的存储层次
    Java实现SSO
    JD(转载)
    Switch的表达式的要求
    leetcode(23. Merge k Sorted Lists)
  • 原文地址:https://www.cnblogs.com/liang2580/p/7892700.html
Copyright © 2011-2022 走看看