• day009作业


    作业:

    # 1、编写文件copy工具
    

    ANSR:

    inp_src_path = input("请输入需要拷贝文件的绝对路径:>>>").strip()
    inp_dst_path = input(r"请输入新文件的绝对路径及新文件名:>>>").strip()
    with open(r"%s"%inp_src_path, mode="rb") as f1,open(r"%s"%inp_dst_path, mode="wb") as f2:
        data = f1.readlines()
        f2.writelines(data)
    
    #2、编写简单购物车程序,自己分析逻辑,完成编程:
        1、先要求用户注册
        2、注册完成后,可以登录
        3、登录成功后,从文件中读取商品信息(名字、价钱)展示给用户
        4、用户可以选择要购买的商品和购买的个数
    
        选做:(需要预习一下文件的修改知识点,https://www.cnblogs.com/linhaifeng/articles/5984922.html#_label5)
            1、注册的时候需要输入自己的金额
            2、用户选择购买商品后,减掉余额
    
            3、其他逻辑自己任意加,想不清楚逻辑就去看看别人的购物车,开始阶段,逻辑无所谓完美,多思考就好
                编程的逻辑就是人类的逻辑,多锻炼一下自己分析问题的逻辑
    

    ANSR:

    while True:
        msg='''    土包子商城登录系统
        0  退出
        1  登录
        2  注册
        '''
        print(msg)
        cmd = input("请输入命令:>>>  ").strip()
        user_normal = []
        user_locked = []
        if not cmd.isdigit():
            print("必须输入正确的数字命令!")
            continue
    
        if cmd == "0":  # 退出
            break
        # 登录功能,验证用户名是否存在,存在输入密码,验证完密码进入
        # 登陆后可以看到商城的下一级菜单,可以选择要购买的商品和购买的个数
        # 需要增加:用户选择购买商品后,减掉余额
        elif cmd == "1":  # 登录
            tag = True
            while tag:
                with open("day009taskdb.txt",mode="rt",encoding="utf-8") as user_f,
                        open("day009tasklocked_user.txt",mode="rt",encoding="utf-8") as user_locked_f:
                    inp_name = input("请输入您的账号:>>>").strip()
                    for line_locked in user_locked_f:
                        name_locked, pwd_locked, balance_locked = line_locked.strip("
    ").split(":")
                        user_locked.append(name_locked)
                    if inp_name not in user_locked:
                        for line_normal in user_f:
                            name, pwd, balance = line_normal.strip("
    ").split(":")
                            user_normal.append(name)
                        if inp_name in user_normal:
                            # 验证成功后的代码:
                            print("用户名验证成功!")
                            count = 0
                            while count < 3:
                                inp_pwd = input("请输入您的密码:>>>").strip()
                                if inp_pwd == pwd:
                                    print("登录成功,正在进入商城>>>  ")
                                    with open("day009taskgoods_list.txt",mode="rt",encoding="utf-8") as goods_list_f:
                                        goods_list = goods_list_f.readlines()
                                        msg_dic = {}
                                        for goods in goods_list:
                                            k,v = goods.strip("
    ").split(":")
                                            msg_dic[k] = v
                                        # msg_dic = dict(goods_list)
                                        while True:
                                            for key, value in msg_dic.items():
                                                print("""商品名称:{0}    商品单价:{1}元""".format(key,value))
                                            else:
                                                print("""
                                                我要买买买 OR 离开土包子商城
                                                0  我走了(退出登录)
                                                1  买买买""")
                                                cmd_pre_buy = input("请输入命令>>>  ")
                                                if not cmd_pre_buy.isdigit():
                                                    continue
                                                elif cmd_pre_buy == "1":   ##进入购买程序,之前应添加步骤:是否开始选购,不选购就
                                                    inp_goods_name = input("请选择您要购买的商品>>>  ").strip()
                                                    if inp_goods_name in msg_dic:
                                                        inp_goods_nums = input("请选择您要购买的数量>>>  ").strip()
                                                        if not inp_goods_nums.isdigit():
                                                            continue
                                                        print("您购买的商品是:{0},单价:{1}元,总价{2}元".format(inp_goods_name,msg_dic[inp_goods_name],int(inp_goods_nums)*int(msg_dic[inp_goods_name])))
                                                        tag_buy_confirm = True
                                                        while tag_buy_confirm:
                                                            print("""
                                                            是否确认购买
                                                            1  确认
                                                            2  取消
                                                            """)
                                                            cmd_buy = input("请输入命令>>>:  ").strip()
                                                            if not cmd_buy.isdigit():
                                                                continue
                                                            if cmd_buy == "1":
                                                                # with open()
                                                                print(inp_name,name, pwd, balance,"line102购买确认")
    
                                                                # pass  # 确认购买,进行账户余额核减
                                                            elif cmd_buy == "2":
                                                                print("您已取消购买,请重新选购!")
                                                                break
                                                            else:
                                                                print("请输入正确的命令!")
                                                        # pass  # 付款、是否继续购买等功能
                                                        else:
                                                            print("]]]]]")
                                                    else:
                                                        print("请重新输入正确的商品名称!")
                                                elif cmd_pre_buy == "0":
                                                    print("返回上一级")
                                                    break
                                                else:
                                                    print("请输入正确的命令!")
    
                                else:
                                    count += 1
                                    print("密码错误{0}次,输错三次后账号锁定,请重新输入>>>  ".format(count))
                                    continue
                            # 密码输错三次后执行
                            else:
                                with open("day009tasklocked_user.txt",mode="at",encoding="utf-8") as user_locked_f,
                                        open("day009taskdb.txt",mode="rt",encoding="utf-8") as user_f:
                                    for line_normal in user_f:
                                        name, pwd, balance = line_normal.strip("
    ").split(":")
                                        if name == inp_name:
                                            user_locked_f.write("{0}:{1}:{2}
    ".format(name, pwd, balance))
    
                                print("密码已输错三次,账号已锁定,请联系管理员")
                                break
    
                        else:
                            print("账户名不存在,请重新输入账号>>>  ")
    
                    else:
                        print("账户名已锁定,请输入合法账号>>>  ")
    
    
            # pass
    
        elif cmd == "2":  # 注册  验证用户名是否存在,不存在继续输入密码,存在则报错并退出到输入用户名的行
            tag = True
            while tag:
                # inp_name = input("请输入您要注册的账号:>>>").strip()
                with open("day009taskdb.txt",mode="rt",encoding="utf-8") as user_f,
                        open("day009taskdb.txt",mode="at",encoding="utf-8") as user_f1:
                    inp_name = input("请输入您要注册的账号:>>>").strip()
                    for line in user_f:
                        name, pwd, balance = line.strip("
    ").split(":")
    
                        if inp_name == name:
                            print("用户名已存在,请重新输入")
                            break
                    else:
                        print("用户名可用")
                        inp_pwd = input("请您输入密码:>>>  ").strip()
                        re_inp_pwd = input("请您输入密码:>>>  ").strip()
                        if not inp_pwd == re_inp_pwd:
                            print("两次密码不一致,请重新输入!")
                            continue
                        inp_balance = input("请输入您的注册金额:>>>  ").strip()
                        if not inp_balance.isdigit():
                            print("充值金额必须是整数!")
                            continue
    
                        user_data = "{0}:{1}:{2}".format(inp_name,inp_pwd,inp_balance)
                        user_f1.writelines(user_data)
    
                    # tag = False
    
        else:
            print("输入的命令不存在")
    
    
  • 相关阅读:
    在yii中使用Filter实现RBAC权限自动判断
    关于WEB设计透明和阴影
    一句话扯扯数据结构的概念点
    Console API Google 浏览器开发人员工具使用
    git提交项目时候,忽略一些文件
    学习笔记 如何解决IE6 position:fixed固定定位问题{转载}
    [转载]yii jquery折叠、弹对话框、拖拽、滑动条、ol和ul列表、局部内容切换
    Jquery 常用方法经典总结【砖】
    PHP中冒号、endif、endwhile、endfor这些都是什么
    [转载]救命的PHP代码
  • 原文地址:https://www.cnblogs.com/huluhuluwa/p/13096656.html
Copyright © 2020-2023  润新知