zoukankan      html  css  js  c++  java
  • 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业

    作业 

    一、三级菜单

    数据结构:
    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车站':{
                    '携程':{}
                }
            },
            '浦东':{},
        },
        '山东':{},
    }
    View Code
    需求:
    • 可依次选择进入各子菜单
    • 可从任意一层往回退到上一层
    • 可从任意一层退出程序

    所需新知识点:列表、字典

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # 输入省份、城市、县名称
    
    China = {
        '河南省': {
            '焦作市': ['武陟', '温县', '博爱'],
            '郑州市': ['新郑', '荥阳', '中牟'],
            '开封市': ['兰考', '尉氏', '杞县'],
        },
        '广东省': {
            '广州市': ['越秀', '荔湾', '番禺'],
            '深圳市': ['福田', '罗湖', '龙岗'],
            '东莞市': ['莞城', '南城', '东城'],
        },
    }
    
    exit_flag = False
    while not exit_flag:  # 第1层循环
        print("33[31;1m---------------------------------33[1m")
        print("         33[31;1m欢迎您来到中国33[1m      ")
        print("33[31;1m---------------------------------33[1m")
        for Province in China:
            print(Province)
        print()
        choice_province = input("1.请输入您要前往的 省份 (输入q退出,输入b返回上级):")
        print()
        if choice_province == "q":
            exit_flag = True
        elif choice_province == "b":
            continue  # 跳出第1层循环的剩下语句,继续进行下一次循环(选择省份)
        elif choice_province in China:
            while not exit_flag:  # 第2层循环
                for City in China[choice_province]:
                    print(City)
                print()
                choice_city = input("2.请输入您要前往的 市区 (输入q退出,输入b返回上级):")
                print()
                if choice_city == "q":
                    exit_flag = True
                elif choice_city == "b":
                    break  # 跳出整个第2层循环,重新进行第1层循环(选择省份)
                elif choice_city in China[choice_province]:
                    while not exit_flag:  # 第3层循环
                        for County in China[choice_province][choice_city]:
                            print(County)
                        print()
                        choice_county = input("3.请输入您要前往的 县 (输入q退出,输入b返回上级):")
                        print()
                        if choice_county == "q":
                            exit_flag = True
                        elif choice_county == "b":
                            break  # 跳出整个第3层循环,重新进行第2层循环(选择市区)
                        elif choice_county in China[choice_province][choice_city]:
                            print("---------------------------------")
                            print("您现在的位置是:", choice_province, choice_city, choice_county)
                            print("---------------------------------")
                            exit_flag = True
                        else:
                            print("您输入的县不存在")
                            print()
                            continue
                else:
                    print("您输入的市区不存在")
                    print()
                    continue
        else:
            print("您输入的省份不存在")
            print()
            continue
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # 输入省份、城市、县序号
    
    China = {
        '河南省': {
            '焦作市': ['武陟', '温县', '博爱'],
            '郑州市': ['新郑', '荥阳', '中牟'],
            '开封市': ['兰考', '尉氏', '杞县'],
        },
        '广东省': {
            '广州市': ['越秀', '荔湾', '番禺'],
            '深圳市': ['福田', '罗湖', '龙岗'],
            '东莞市': ['莞城', '南城', '东城'],
        },
    }
    
    exit_flag = False
    while not exit_flag:  # 第1层循环
        province_list = [] # 定义一个省份列表
        city_list = [] # 定义一个城市列表
        print("33[31;1m---------------------------------33[1m")
        print("         33[31;1m欢迎您来到中国33[1m      ")
        print("33[31;1m---------------------------------33[1m")
        for index,Province in enumerate(China,1):
            print("%s. %s" % (index,Province))
            province_list.append(Province) # 添加所有省份到省份列表中
        print()
        choice_province = input("一.请输入您要前往的省份序号 (输入q退出,输入b返回上级):")
        print()
        if choice_province == "q" or choice_province == "Q":
            exit_flag = True
        elif choice_province == "b" or choice_province == "B":
            continue  # 跳出第1层循环的剩下语句,继续进行下一次循环(选择省份)
        elif choice_province.isdigit():
            choice_province = int(choice_province)
            if choice_province >= 1 and choice_province <= len(province_list):
                while not exit_flag:  # 第2层循环
                    for index,City in enumerate(China[province_list[choice_province-1]],1):
                        print("%s. %s" % (index,City))
                        city_list.append(City)  # 添加所有城市到城市列表中
                    print()
                    choice_city = input("二.请输入您要前往的城市序号 (输入q退出,输入b返回上级):")
                    print()
                    if choice_city == "q" or choice_city == "Q":
                        exit_flag = True
                    elif choice_city == "b" or choice_city == "B":
                        break  # 跳出整个第2层循环,重新进行第1层循环(选择省份)
                    elif choice_city.isdigit():
                        choice_city = int(choice_city)
                        if choice_city >=1 and choice_city <= len(city_list):
                            while not exit_flag:  # 第3层循环
                                for index,County in enumerate(China[province_list[choice_province-1]][city_list[choice_city-1]],1):
                                    print("%s. %s" % (index, County))
                                print()
                                choice_county = input("三.请输入您要前往的县序号 (输入q退出,输入b返回上级):")
                                print()
                                if choice_county == "q" or choice_county == "Q":
                                    exit_flag = True
                                elif choice_county == "b" or choice_county == "b":
                                    break  # 跳出整个第3层循环,重新进行第2层循环(选择城市)
                                elif choice_county.isdigit():
                                    choice_county = int(choice_county)
                                    county_list = China[province_list[choice_province - 1]][city_list[choice_city - 1]] # 县列表
                                    if choice_county >= 1 and choice_county <= len(county_list):
                                        print("---------------------------------")
                                        print("您现在的位置是:", province_list[choice_province-1],city_list[choice_city-1],county_list[choice_county-1])
                                        print("---------------------------------")
                                        exit_flag = True
                                    else:
                                        print("您输入的县序号不存在")
                                        print()
                                else:
                                    print("您输入的县序号不存在")
                                    print()
                                    continue
                        else:
                            print("您输入的城市序号不存在")
                            print()
                            continue
                    else:
                        print("您输入的城市序号不存在")
                        print()
                        continue
            else:
                print("您输入的省份序号不存在")
                print()
        else:
            print("您输入的省份序号不存在")
            print()
            continue
    

     最终版本:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # 三级菜单
    
    menu = {
        '北京': {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
        '上海': {
            '闵行': {
                "人民广场": {
                    '炸鸡店': {}
                }
            },
            '闸北': {
                '火车站': {
                    '携程': {}
                }
            },
            '浦东': {},
        },
        '山东': {},
    }
    
    current_layer = menu  # 最高层次为menu(是一个字典)
    layer_list = []  # 存放每次进入的层次,用于退回上层
    while True:
        for k in current_layer:  # 遍历字典key
            print("
    ", k)
        choice = input("
    33[34;1m请输入您要前往的地址(输入q退出,输入b返回上级)>>>33[0m").strip()
        if choice == 'q' or choice == 'Q':  # 可从任意一层退出程序
            break
        elif choice == 'b' or choice == 'B':  # 可从任意一层往回退到上一层
            if not layer_list:
                print("
    33[31;1m到顶了,哥33[0m
    ")
            else:
                current_layer = layer_list.pop()
        elif choice not in current_layer:
            print("
    33[31;1m输入有误,请重新输入33[0m
    ")
        else:
            layer_list.append(current_layer)  # 在列表末尾追加当前层次(是一个字典)
            current_layer = current_layer[choice]  # 下一个层次(也就是下一次要遍历的字典)
            if not current_layer:
                print("
    33[31;1m到底了,哥33[0m")
    View Code

    二、购物车程序

    数据结构:
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ......
    ]
    View Code
    功能要求:

    1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表

    2、允许用户根据商品编号购买商品

    3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

    4、可随时退出,退出时,打印已购买商品和余额

    5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示

    扩展需求:

    1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买

    2、允许查询之前的消费记录

    1.0版本

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 goods = [
     5     {"name": "电脑", "price": 3999},
     6     {"name": "鼠标", "price": 200},
     7     {"name": "游艇", "price": 2000},
     8     {"name": "美女", "price": 998},
     9     {"name": "T恤", "price": 599},
    10 ]
    11 
    12 shopping_carts = []  # 初始购物车为空
    13 money = 0  # 初始工资为空
    14 money += int(input("请输入您的工资:"))  # 只能输入数字
    15 exit_flag = False
    16 
    17 while not exit_flag:
    18     print("
    ------------商品列表-----------
    ")  # 商品列表
    19     for index, product in enumerate(goods, 1):
    20         print("%s.%s %d" % (index, product['name'], product['price']))
    21     print("
    -------------------------------
    ")
    22     product_id = input("请输入您要购买的商品编号(输入q可退出):")
    23     if product_id.isdigit():
    24         product_id = int(product_id)
    25         if product_id >= 1 and product_id <= len(goods):
    26             if money >= goods[product_id - 1]['price']:
    27                 money -= goods[product_id - 1]['price']
    28                 shopping_carts.append(goods[product_id - 1]['name'])
    29                 print("
    33[31;1m%s已加入购物车!33[1m
    " % (goods[product_id - 1]['name']))
    30             else:
    31                 print("
    33[31;1m抱歉,%s加入购物车失败!工资余额不足!33[1m
    " % (goods[product_id - 1]['name']))
    32                 # exit_flag =True
    33         else:
    34             print("商品标号有误,请重新输入")
    35     elif product_id == "q":
    36         if len(shopping_carts) > 0:
    37             print("
    33[31;1m您添加到购物车的商品如下:33[1m
    ")
    38             for index, product_carts in enumerate(shopping_carts, 1):
    39                 print("%s. %s" % (index, product_carts))
    40         else:
    41             print("
    您的购物车为空!")
    42         print("
    33[31;1m您的工资余额为:%s 元!33[1m
    " % (money))
    43         exit_flag = True
    44     else:
    45         pass
    View Code

    1.1版本

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    goods = [
        {"name": "电脑", "price": 3999},
        {"name": "鼠标", "price": 200},
        {"name": "游艇", "price": 2000},
        {"name": "美女", "price": 998},
        {"name": "T恤", "price": 599},
    ]
    
    exit_flag = False
    shopping_carts = []  # 初始购物车为空
    money = 0  # 初始工资为空
    
    while True:
        salary = input("
    请输入您的工资:")  # 工资只能是数字
        if salary.isdigit():
            money += int(salary)
            break
        else:
            print("
    您的工资只能是数字")
            continue
    
    while not exit_flag:
        print("
    ------------商品列表-----------
    ")  # 商品列表
        for index, product in enumerate(goods, 1):
            print("%s.%s %d" % (index, product['name'], product['price']))
        print("
    -------------------------------
    ")
        product_id = input("请输入您要购买的商品编号(输入q可退出):")
        if product_id.isdigit():
            product_id = int(product_id)
            if product_id >= 1 and product_id <= len(goods):
                if money >= goods[product_id - 1]['price']:
                    money -= goods[product_id - 1]['price']
                    shopping_carts.append(goods[product_id - 1]['name'])
                    print("
    33[31;1m%s已加入购物车!33[1m
    " % (goods[product_id - 1]['name']))
                else:
                    print("
    33[31;1m抱歉,%s加入购物车失败!工资余额不足!33[1m
    " % (goods[product_id - 1]['name']))
                    # exit_flag =True
            else:
                print("商品标号有误,请重新输入")
        elif product_id == "q":
            if len(shopping_carts) > 0:
                print("
    33[31;1m您添加到购物车的商品如下:33[1m
    ")
                shopping_carts_delRepeat = list(set(shopping_carts))  # 购物车列表去重
                for index, product_carts in enumerate(shopping_carts_delRepeat, 1):
                    print("%s. %s * %d" % (index, product_carts, shopping_carts.count(product_carts)))  # 显示同一商品数量
            else:
                print("
    您的购物车为空!")
            print("
    33[31;1m您的工资余额为:%s 元!33[1m
    " % (money))
            exit_flag = True
        else:
            print("
    输入有误,请重新输入")
    View Code

    1.2版本

    userinfo.txt:

    alex:456:0:400
    wss:123:0:1150
    jay:789:1:0
    View Code

    shopping_history.txt:

    wss|2018-05-20 12:10:08|电脑
    wss|2018-05-20 14:10:09|电脑
    wss|2018-05-21 17:11:08|电脑
    jay|2018-05-22 19:13:08|电脑
    alex|2018-05-23 17:15:08|鼠标
    wss|2018-05-23 19:06:24|鼠标
    wss|2018-05-23 19:06:57|鼠标
    wss|2018-05-23 19:11:46|鼠标
    wss|2018-05-23 19:14:12|鼠标
    wss|2018-05-23 19:14:30|鼠标
    wss|2018-05-23 19:15:17|鼠标
    alex|2018-05-23 19:16:12|鼠标
    alex|2018-05-23 19:16:51|鼠标
    View Code

    README.txt

    user_info.txt
    
        存储用户名、密码、锁定状态、工资余额
    
        wss:123:1:5800
        alex:456:0:55000
        jay:789:0:0
        
        用户名:密码:锁定状态(1代表锁定,0代表未锁定):工资余额
        
        wss是输错密码次数过多,被锁定的用户。
        alex是之前登陆过的用户,登陆之后可以看到工资余额,可继续购买。
        jay是从未登陆过的新用户,登陆之后需要输入工资,然后才能购买。
        
        
    shopping_history.txt
    
        存储消费记录
        
        wss|2018-05-20 12:10:08|电脑
        wss|2018-05-20 14:10:09|电脑
        wss|2018-05-21 17:11:08|电脑
        jay|2018-05-22 19:13:08|电脑
        alex|2018-05-23 17:15:08|鼠标
        wss|2018-05-23 19:06:24|鼠标
        wss|2018-05-23 19:06:57|鼠标
        
        买家用户名|日期|商品名称
        
    shoping.py
    
        主程序
        
        -------------------------------
        
        请输入用户名:alex
    
        请输入密码:456
    
        --------欢迎 alex 登陆商城--------
    
        您上次购物后的余额为:350 元!
    
    
        ------------商品列表------------
    
        1.电脑 4000
        2.鼠标 200
        3.游艇 20000
        4.美女 1000
        5.T恤 50
    
        -------------------------------
    
        【商品编号】购买商品
        【h】消费记录
        【m】余额查询
        【q】退出商城
    
        -------------------------------
    
        请输入您要的操作:h
        
        ---------您的消费记录----------
    
        用户 alex 2018-05-23 17:15:08 购买了 鼠标
        用户 alex 2018-05-23 19:16:12 购买了 鼠标
        用户 alex 2018-05-23 19:16:51 购买了 鼠标
        用户 alex 2018-05-23 19:16:52 购买了 鼠标
        用户 alex 2018-05-23 19:18:00 购买了 T恤
        用户 alex 2018-05-23 22:35:06 购买了 鼠标
        用户 alex 2018-05-25 18:12:41 购买了 鼠标
        用户 alex 2018-05-25 18:16:25 购买了 电脑
        用户 alex 2018-05-25 18:31:56 购买了 电脑
        用户 alex 2018-05-25 18:34:44 购买了 鼠标
        用户 alex 2018-05-25 18:36:02 购买了 鼠标
        用户 alex 2018-05-26 20:00:34 购买了 鼠标
        用户 alex 2018-05-26 20:00:37 购买了 美女
        用户 alex 2018-05-26 20:00:38 购买了 T恤
    
        -------------------------------
        
        请输入您要的操作:m
    
        您的工资余额为:350 元!
        
        -------------------------------
        
        请输入您要的操作:5
    
        T恤已购买成功!
        
        -------------------------------
        
        请输入您要的操作:q
        
        您本次没有购买东西!
    
        您的工资余额为:350 元!
        
        -------------------------------
        
    View Code

    shopping.py

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import os
    import time
    
    
    def select_user_info():
        # 读取用户信息文件,取出用户名、密码、锁定状态、余额组成一个用户信息字典user_info_dict
        with open(user_info_f_name, 'r', encoding='utf-8') as user_info_f:
            for line in user_info_f:  # 用户信息字符串
                user_info_list = line.strip().split(':')  # 将字符串转换为列表
                # print(user_info_list) # 用户信息列表
                _username = user_info_list[0].strip()  # 用户名
                _password = user_info_list[1].strip()  # 密码
                _lock = int(user_info_list[2].strip())  # 锁定状态,int类型(0代表未锁定,1代表锁定)
                _money = user_info_list[3].strip()  # 余额
                user_info_dict[_username] = {'password': _password, 'lock': _lock, 'money': _money}  # 将列表转换为字典
                # print(user_info_dict) # 用户信息字典
    
    
    def update_user_info():
        # 修改用户信息后,更新user_info.txt文件内容
        with open(user_info_f_temp_name, "w", encoding="utf-8") as user_info_f_temp:
            for user in user_info_dict:  # 将字典转换为列表
                user_info_list_new = [user, str(user_info_dict[user]['password']), str(user_info_dict[user]['lock']),
                                      str(user_info_dict[user]['money'])]
                # print(user_info_list_new) # 更新后的用户信息列表
                user_info_str = ":".join(user_info_list_new)  # 将列表转换为字符串
                # print(user_str) # 更新后的用户信息字符串
                user_info_f_temp.write(user_info_str + "
    ")
        os.replace(user_info_f_temp_name, user_info_f_name)
    
    
    def product_list():
        # 商品列表
        print("
    ------------商品列表------------
    ")  # 商品列表
        for index, product in enumerate(goods, 1):
            print("%s.%s %d" % (index, product['name'], product['price']))
        print("
    -------------------------------")
    
    
    def select_shopping_history():
        # 读取消费记录
        with open(shopping_history_f_name, "r", encoding="utf-8") as shopping_history_f:
            print("
    ------------消费记录-----------
    ")
            for line in shopping_history_f:
                shopping_history_list = line.strip().split('|')
                # print(shopping_history_list)
                _username = shopping_history_list[0].strip()
                _time = shopping_history_list[1].strip()
                _product = shopping_history_list[2].strip()
                if username in shopping_history_list:
                    print("用户 {0} {1} 购买了 {2}".format(_username, _time, _product))
                else:
                    pass
            print("
    -------------------------------")
    
    
    def update_shopping_history():
        # 更新消费记录
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        with open(shopping_history_f_name, "a", encoding="utf-8") as shopping_history_f:
            shopping_history_f.write("
    %s|%s|%s" % (username, now_time, goods[product_id - 1]['name']))
    
    
    # 商品信息
    goods = [
        {"name": "电脑", "price": 4000},
        {"name": "鼠标", "price": 200},
        {"name": "游艇", "price": 20000},
        {"name": "美女", "price": 1000},
        {"name": "T恤", "price": 50},
    ]
    
    # 菜单栏
    choice_info = """
    【商品编号】购买商品
    【h】消费记录
    【m】余额查询
    【q】退出商城
    
    -------------------------------
    """
    
    shopping_carts = []  # 初始购物车为空
    user_info_dict = {}  # 初始化用户信息字典为空
    user_info_f_name = "user_info.txt"  # 用户信息文件名
    user_info_f_temp_name = "user_info.txt.temp"  # 用户信息临时文件名
    shopping_history_f_name = "shopping_history.txt"  # 消费记录
    exit_flag = False
    count = 0
    
    # 主程序开始
    select_user_info()  # 读取用户信息文件,组成user_info_dict字典
    while count < 3 and not exit_flag:
        username = input('
    请输入用户名:')
        if username not in user_info_dict:
            count += 1
            print("
    用户名错误")
        elif user_info_dict[username]['lock'] > 0:
            print("
    用户已被锁定,请联系管理员解锁后重新尝试")
            break
        else:
            while count < 3 and not exit_flag:
                password = input('
    请输入密码:')
                if password == user_info_dict[username]['password']:
                    print("
    --------欢迎%s登陆本商城--------" % (username))
                    if int(user_info_dict[username]['money']) == 0:  # money = 0表示是首次登陆的用户
                        while True:
                            money = input("
    请输入您的工资:")  # 工资只能是数字
                            if money.isdigit():
                                money = int(money)
                                # print(money)
                                break
                            else:
                                print("
    您的工资只能是数字")
                                continue
                    else:
                        money = int(user_info_dict[username]['money'])
                        print("
    33[31;1m您上次购物后的余额为:%s 元!33[1m
    " % (money))
                    while not exit_flag:
                        product_list()  # 打印商品列表
                        print(choice_info)  # 选择信息
                        product_id = input("请输入您要的操作:")
                        if product_id.isdigit():
                            product_id = int(product_id)
                            if product_id >= 1 and product_id <= len(goods):
                                if money >= goods[product_id - 1]['price']:
                                    money -= goods[product_id - 1]['price']
                                    shopping_carts.append(goods[product_id - 1]['name'])
                                    print("
    33[31;1m%s已购买成功!33[1m
    " % (goods[product_id - 1]['name']))
                                    update_shopping_history()  # 写入消费记录文件
                                    user_info_dict[username]['money'] = money
                                    update_user_info()  # 更新工资余额到文件
                                else:
                                    print(
                                        "
    33[31;1m抱歉,%s购买失败!工资余额不足!33[1m
    " % (goods[product_id - 1]['name']))
                            else:
                                print("商品标号有误,请重新输入")
                        elif product_id == "q":
                            if len(shopping_carts) > 0:
                                print("
    33[31;1m您本次购买的商品及商品数量如下:33[1m
    ")
                                shopping_carts_delRepeat = list(set(shopping_carts))  # 购物车列表去重
                                for index, product_carts in enumerate(shopping_carts_delRepeat, 1):
                                    print("%s. %s * %d" % (
                                        index, product_carts, shopping_carts.count(product_carts)))  # 显示同一商品数量
                            else:
                                print("
    您本次没有购买东西!")
                            print("
    33[31;1m您的工资余额为:%s 元!33[1m
    " % (money))
                            # user_info_dict[username]['money'] = money
                            # update_user_info()  # 更新工资余额到文件
                            exit_flag = True
                        elif product_id == "h":
                            select_shopping_history()
                            choice_continue = input("
    回到菜单栏(直接按回车):")
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    操作失误,强制退出!")
                                exit_flag = True
                        elif product_id == "m":
                            print("
    33[31;1m您的工资余额为:%s 元!33[1m
    " % (money))
                            # user_info_dict[username]['money'] = money
                            # update_user_info()  # 更新工资余额到文件
                            choice_continue = input("
    回到菜单栏(直接按回车):")
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    操作失误,强制退出!")
                                exit_flag = True
                        else:
                            print("
    输入有误,请重新输入")
                else:
                    count += 1
                    print('
    密码错误')
                    continue
        if count >= 3:  # 尝试次数大于等于3时锁定用户
            if username == "":
                print("
    您输入的错误次数过多,且用户为空")
            elif username not in user_info_dict:
                print("
    您输入的错误次数过多,且用户 %s 不存在" % username)
            else:
                user_info_dict[username]['lock'] += 1  # 修改用户字典(锁定状态设为1)
                # print(user_info_dict) # 更新后的用户信息字典
                update_user_info()  # 更新user_info.txt文件内容
                print("
    您输入的错误次数过多,%s 已经被锁定" % username)
    View Code
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import os
    import time
    
    
    def select_user_info():
        # 读取用户信息文件,取出用户名、密码、锁定状态、余额组成一个用户信息字典user_info_dict
        with open(user_info_f_name, 'r', encoding='utf-8') as user_info_f:
            for line in user_info_f:  # 用户信息字符串
                user_info_list = line.strip().split(':')  # 将字符串转换为列表
                # print(user_info_list) # 用户信息列表
                _username = user_info_list[0].strip()  # 用户名
                _password = user_info_list[1].strip()  # 密码
                _lock = int(user_info_list[2].strip())  # 锁定状态,int类型(0代表未锁定,1代表锁定)
                _money = user_info_list[3].strip()  # 余额
                user_info_dict[_username] = {'password': _password, 'lock': _lock, 'money': _money}  # 将列表转换为字典
                # print(user_info_dict) # 用户信息字典
    
    
    def update_user_info():
        # 修改用户信息后,更新user_info.txt文件内容
        with open(user_info_f_temp_name, "w", encoding="utf-8") as user_info_f_temp:
            for user in user_info_dict:  # 将字典转换为列表
                user_info_list_new = [user, str(user_info_dict[user]['password']), str(user_info_dict[user]['lock']),
                                      str(user_info_dict[user]['money'])]
                # print(user_info_list_new) # 更新后的用户信息列表
                user_info_str = ":".join(user_info_list_new)  # 将列表转换为字符串
                # print(user_str) # 更新后的用户信息字符串
                user_info_f_temp.write(user_info_str + "
    ")
        os.replace(user_info_f_temp_name, user_info_f_name)
    
    
    def product_list():
        # 商品列表
        print("
    ------------商品列表------------
    ")  # 商品列表
        for index, product in enumerate(goods, 1):
            print("%s.%s %d" % (index, product['name'], product['price']))
        print("
    -------------------------------")
    
    
    def select_shopping_history():
        # 读取消费记录
        with open(shopping_history_f_name, "r", encoding="utf-8") as shopping_history_f:
            print("
    ---------您的消费记录----------
    ")
            for line in shopping_history_f:
                shopping_history_list = line.strip().split('|')
                # print(shopping_history_list)
                _username = shopping_history_list[0].strip()
                _time = shopping_history_list[1].strip()
                _product = shopping_history_list[2].strip()
                if username in shopping_history_list:
                    print("用户 {0} {1} 购买了 {2}".format(_username, _time, _product))
                else:
                    pass
            print("
    -------------------------------")
    
    
    def update_shopping_history():
        # 更新消费记录
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        with open(shopping_history_f_name, "a", encoding="utf-8") as shopping_history_f:
            shopping_history_f.write("
    %s|%s|%s" % (username, now_time, goods[product_id - 1]['name']))
    
    
    # 商品信息
    goods = [
        {"name": "电脑", "price": 4000},
        {"name": "鼠标", "price": 200},
        {"name": "游艇", "price": 20000},
        {"name": "美女", "price": 1000},
        {"name": "T恤", "price": 50},
    ]
    
    # 菜单栏
    choice_info = """
    【商品编号】购买商品
    【h】消费记录
    【m】余额查询
    【q】退出商城
    
    -------------------------------
    """
    
    shopping_carts = []  # 初始购物车为空
    user_info_dict = {}  # 初始化用户信息字典为空
    user_info_f_name = "user_info.txt"  # 用户信息文件名
    user_info_f_temp_name = "user_info.txt.temp"  # 用户信息临时文件名
    shopping_history_f_name = "shopping_history.txt"  # 消费记录
    exit_flag = False
    count = 0
    
    # 主程序开始
    select_user_info()  # 读取用户信息文件,组成user_info_dict字典
    while count < 3 and not exit_flag:
        username = input('
    请输入用户名:')
        if username not in user_info_dict:
            count += 1
            print("
    用户名错误")
        elif user_info_dict[username]['lock'] > 0:
            print("
    用户已被锁定,请联系管理员解锁后重新尝试")
            break
        else:
            while count < 3 and not exit_flag:
                password = input('
    请输入密码:')
                if password == user_info_dict[username]['password']:
                    print("
    --------欢迎%s登陆本商城--------" % (username))
                    if int(user_info_dict[username]['money']) == 0:  # money = 0表示是首次登陆的用户
                        while True:
                            money = input("
    请输入您的工资:")  # 工资只能是数字
                            if money.isdigit():
                                money = int(money)
                                # print(money)
                                break
                            else:
                                print("
    您的工资只能是数字")
                                continue
                    else:
                        money = int(user_info_dict[username]['money'])
                        print("
    33[31;1m您上次购物后的余额为:%s 元!33[0m
    " % (money))
                    while not exit_flag:
                        product_list()  # 打印商品列表
                        print(choice_info)  # 选择信息
                        product_id = input("请输入您要的操作:")
                        if product_id.isdigit():
                            product_id = int(product_id)
                            if product_id >= 1 and product_id <= len(goods):
                                if money >= goods[product_id - 1]['price']:
                                    money -= goods[product_id - 1]['price']
                                    shopping_carts.append(goods[product_id - 1]['name'])
                                    print("
    33[31;1m%s已购买成功!33[0m
    " % (goods[product_id - 1]['name']))
                                    update_shopping_history()  # 写入消费记录文件
                                    user_info_dict[username]['money'] = money
                                    update_user_info()  # 更新工资余额到文件
                                else:
                                    print("
    33[31;1m抱歉,%s购买失败!工资余额不足!33[0m" % (goods[product_id - 1]['name']))
                            else:
                                print("商品标号有误,请重新输入")
                        elif product_id == "q":
                            if len(shopping_carts) > 0:
                                print("
    33[31;1m您本次购买的商品及商品数量如下:33[0m
    ")
                                shopping_carts_delRepeat = list(set(shopping_carts))  # 购物车列表去重
                                for index, product_carts in enumerate(shopping_carts_delRepeat, 1):
                                    print("%s. %s * %d" % (
                                        index, product_carts, shopping_carts.count(product_carts)))  # 显示同一商品数量
                            else:
                                print("
    您本次没有购买东西!")
                            print("
    33[31;1m您的工资余额为:%s 元!33[0m
    " % (money))
                            # user_info_dict[username]['money'] = money
                            # update_user_info()  # 更新工资余额到文件
                            exit_flag = True
                        elif product_id == "h":
                            select_shopping_history()
                            choice_continue = input("
    回到菜单栏(直接按回车):")
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    操作失误,强制退出!")
                                exit_flag = True
                        elif product_id == "m":
                            print("
    33[31;1m您的工资余额为:%s 元!33[0m
    " % (money))
                            # user_info_dict[username]['money'] = money
                            # update_user_info()  # 更新工资余额到文件
                            choice_continue = input("
    回到菜单栏(直接按回车):")
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    操作失误,强制退出!")
                                exit_flag = True
                        else:
                            print("
    输入有误,请重新输入")
                else:
                    count += 1
                    print('
    密码错误')
                    continue
        if count >= 3:  # 尝试次数大于等于3时锁定用户
            if username == "":
                print("
    您输入的错误次数过多,且用户为空")
            elif username not in user_info_dict:
                print("
    您输入的错误次数过多,且用户 %s 不存在" % username)
            else:
                user_info_dict[username]['lock'] += 1  # 修改用户字典(锁定状态设为1)
                # print(user_info_dict) # 更新后的用户信息字典
                update_user_info()  # 更新user_info.txt文件内容
                print("
    您输入的错误次数过多,%s 已经被锁定" % username)
    View Code

     1.3版本:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import os
    import time
    
    
    def select_user_info():
        # 读取用户信息文件,取出用户名、密码、锁定状态、余额组成一个用户信息字典user_info_dict
        with open(user_info_f_name, 'r', encoding='utf-8') as user_info_f:
            for line in user_info_f:  # 用户信息字符串
                user_info_list = line.strip().split(':')  # 将字符串转换为列表
                # print(user_info_list) # 用户信息列表
                _username = user_info_list[0].strip()  # 用户名
                _password = user_info_list[1].strip()  # 密码
                _lock = int(user_info_list[2].strip())  # 锁定状态,int类型(0代表未锁定,1代表锁定)
                _money = user_info_list[3].strip()  # 余额
                user_info_dict[_username] = {'password': _password, 'lock': _lock, 'money': _money}  # 将列表转换为字典
                # print(user_info_dict) # 用户信息字典
    
    
    def update_user_info():
        # 修改用户信息后,更新user_info.txt文件内容
        with open(user_info_f_temp_name, "w", encoding="utf-8") as user_info_f_temp:
            for user in user_info_dict:  # 将字典转换为列表
                user_info_list_new = [user, str(user_info_dict[user]['password']), str(user_info_dict[user]['lock']),
                                      str(user_info_dict[user]['money'])]
                # print(user_info_list_new) # 更新后的用户信息列表
                user_info_str = ":".join(user_info_list_new)  # 将列表转换为字符串
                # print(user_str) # 更新后的用户信息字符串
                user_info_f_temp.write(user_info_str + "
    ")
        os.replace(user_info_f_temp_name, user_info_f_name)
    
    
    def product_list():
        # 商品列表
        print("
    ------------商品列表------------
    ")  # 商品列表
        for index, product in enumerate(goods, 1):
            print("%s.%s %d" % (index, product['name'], product['price']))
        print("
    -------------------------------")
    
    
    def select_shopping_history():
        # 读取消费记录
        with open(shopping_history_f_name, "r", encoding="utf-8") as shopping_history_f:
            print("
    ---------您的消费记录----------
    ")
            for line in shopping_history_f:
                shopping_history_list = line.strip().split('|')
                # print(shopping_history_list)
                _username = shopping_history_list[0].strip()
                _time = shopping_history_list[1].strip()
                _product = shopping_history_list[2].strip()
                if username in shopping_history_list:
                    print("用户 {0} {1} 购买了 {2}".format(_username, _time, _product))
                else:
                    pass
            print("
    -------------------------------")
    
    
    def update_shopping_history():
        # 更新消费记录
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        with open(shopping_history_f_name, "a", encoding="utf-8") as shopping_history_f:
            shopping_history_f.write("
    %s|%s|%s" % (username, now_time, goods[product_id - 1]['name']))
    
    
    # 商品信息
    goods = [
        {"name": "电脑", "price": 4000},
        {"name": "鼠标", "price": 200},
        {"name": "游艇", "price": 20000},
        {"name": "美女", "price": 1000},
        {"name": "T恤", "price": 50},
    ]
    
    # 菜单栏
    choice_info = """
    【商品编号】购买商品
    【h】消费记录
    【m】余额查询
    【q】退出商城
    
    -------------------------------
    """
    
    shopping_carts = []  # 初始购物车为空
    user_info_dict = {}  # 初始化用户信息字典为空
    user_info_f_name = "user_info.txt"  # 用户信息文件名
    user_info_f_temp_name = "user_info.txt.temp"  # 用户信息临时文件名
    shopping_history_f_name = "shopping_history.txt"  # 消费记录
    count = 0
    
    # 主程序开始
    select_user_info()  # 读取用户信息文件,组成user_info_dict字典
    while count < 3:
        username = input('
    33[34;1m请输入用户名:33[0m').strip()
        if username not in user_info_dict:
            count += 1
            print("
    33[31;1m用户名错误33[0m")
        elif user_info_dict[username]['lock'] > 0:
            print("
    33[31;1m%s 已被锁定,请联系管理员解锁后重新尝试33[0m" % (username))
            exit()
        else:
            while count < 3:
                password = input('
    33[34;1m请输入密码:33[0m').strip()
                if password == user_info_dict[username]['password']:
                    print("
    --------欢迎 %s 登陆商城--------" % (username))
                    if int(user_info_dict[username]['money']) == 0:  # money = 0表示是首次登陆的用户
                        while True:
                            money = input("
    33[34;1m请输入您的工资:33[0m")  # 工资只能是数字
                            if money.isdigit():
                                money = int(money)
                                # print(money)
                                break
                            else:
                                print("
    33[31;1m您的工资只能是数字33[0m")
                                continue
                    else:
                        money = int(user_info_dict[username]['money'])
                        print("
    33[31;1m您上次购物后的余额为:%s 元!33[0m
    " % (money))
                    while True:
                        product_list()  # 打印商品列表
                        print(choice_info)  # 选择信息
                        product_id = input("33[34;1m请输入您要的操作:33[0m").strip()
                        if product_id.isdigit():
                            product_id = int(product_id)
                            if product_id >= 1 and product_id <= len(goods):
                                if money >= goods[product_id - 1]['price']:
                                    money -= goods[product_id - 1]['price']
                                    shopping_carts.append(goods[product_id - 1]['name'])
                                    print("
    33[31;1m%s已购买成功!33[0m
    " % (goods[product_id - 1]['name']))
                                    update_shopping_history()  # 写入消费记录文件
                                    user_info_dict[username]['money'] = money
                                    update_user_info()  # 更新工资余额到文件
                                else:
                                    print("
    33[31;1m抱歉,%s购买失败!工资余额不足!33[0m" % (goods[product_id - 1]['name']))
                            else:
                                print("33[31;1m商品标号有误,请重新输入33[0m")
                        elif product_id == "q":
                            if len(shopping_carts) > 0:
                                print("
    33[31;1m您本次购买的商品及商品数量如下:33[0m
    ")
                                shopping_carts_delRepeat = list(set(shopping_carts))  # 购物车列表去重
                                for index, product_carts in enumerate(shopping_carts_delRepeat, 1):
                                    print("%s. %s * %d" % (
                                        index, product_carts, shopping_carts.count(product_carts)))  # 显示同一商品数量
                            else:
                                print("
    33[31;1m您本次没有购买东西!33[0m")
                            print("
    33[31;1m您的工资余额为:%s 元!33[0m
    " % (money))
                            exit()
                        elif product_id == "h":
                            select_shopping_history()
                            choice_continue = input("
    33[34;1m回到菜单栏(直接按回车):33[0m").strip()
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    33[31;1m操作失误,强制退出!33[0m")
                                exit()
                        elif product_id == "m":
                            print("
    33[31;1m您的工资余额为:%s 元!33[0m
    " % (money))
                            choice_continue = input("
    33[34;1m回到菜单栏(直接按回车):33[0m").strip()
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    33[31;1m操作失误,强制退出!33[0m")
                                exit()
                        else:
                            print("
    33[31;1m输入有误,请重新输入33[0m")
                else:
                    count += 1
                    print('
    33[31;1m密码错误33[0m')
                    continue
        if count >= 3:  # 尝试次数大于等于3时锁定用户
            if not username:
                print("
    33[31;1m您输入的错误次数过多,且用户为空33[0m")
            elif username not in user_info_dict:
                print("
    33[31;1m您输入的错误次数过多,且用户 %s 不存在33[0m" % username)
            else:
                user_info_dict[username]['lock'] += 1  # 修改用户字典(锁定状态设为1)
                # print(user_info_dict) # 更新后的用户信息字典
                update_user_info()  # 更新user_info.txt文件内容
                print("
    33[31;1m您输入的错误次数过多,%s 已经被锁定33[0m" % username)
    View Code

     最终版本:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    """
    @Version: V1.0
    @Author: wushuaishuai
    @License: Apache Licence
    @Contact: 434631143@qq.com
    @Site: http://www.cnblogs.com/wushuaishuai/
    @Software: PyCharm
    @File: shopping.py
    @Time: 2018/05/26 20:39
                 ┏┓      ┏┓
                ┏┛┻━━━┛┻┓
                ┃      ☃      ┃
                ┃  ┳┛  ┗┳  ┃
                ┃      ┻      ┃
                ┗━┓      ┏━┛
                    ┃      ┗━━━┓
                    ┃  神兽保佑    ┣┓
                    ┃ 永无BUG!   ┏┛
                    ┗┓┓┏━┳┓┏┛
                      ┃┫┫  ┃┫┫
                      ┗┻┛  ┗┻┛
    """
    
    import os
    import time
    
    
    def select_user_info():
        # 读取用户信息文件,取出用户名、密码、锁定状态、余额组成一个用户信息字典user_info_dict
        with open(user_info_f_name, 'r', encoding='utf-8') as user_info_f:
            for line in user_info_f:  # 用户信息字符串
                user_info_list = line.strip().split(':')  # 将字符串转换为列表
                # print(user_info_list) # 用户信息列表
                _username = user_info_list[0].strip()  # 用户名
                _password = user_info_list[1].strip()  # 密码
                _lock = int(user_info_list[2].strip())  # 锁定状态,int类型(0代表未锁定,1代表锁定)
                _money = user_info_list[3].strip()  # 余额
                user_info_dict[_username] = {'password': _password, 'lock': _lock, 'money': _money}  # 将列表转换为字典
                # print(user_info_dict) # 用户信息字典
    
    
    def update_user_info():
        # 修改用户信息后,更新user_info.txt文件内容
        with open(user_info_f_temp_name, "w", encoding="utf-8") as user_info_f_temp:
            for user in user_info_dict:  # 将字典转换为列表
                user_info_list_new = [user, str(user_info_dict[user]['password']), str(user_info_dict[user]['lock']),
                                      str(user_info_dict[user]['money'])]
                # print(user_info_list_new) # 更新后的用户信息列表
                user_info_str = ":".join(user_info_list_new)  # 将列表转换为字符串
                # print(user_str) # 更新后的用户信息字符串
                user_info_f_temp.write(user_info_str + "
    ")
        os.replace(user_info_f_temp_name, user_info_f_name)
    
    
    def product_list():
        # 商品列表
        print("
    ------------商品列表------------
    ")  # 商品列表
        for index, product in enumerate(goods, 1):
            print("%s.%s %d" % (index, product['name'], product['price']))
        print("
    -------------------------------")
    
    
    def select_shopping_history():
        # 读取消费记录
        with open(shopping_history_f_name, "r", encoding="utf-8") as shopping_history_f:
            print("
    ---------您的消费记录----------
    ")
            for line in shopping_history_f:
                shopping_history_list = line.strip().split('|')
                # print(shopping_history_list)
                _username = shopping_history_list[0].strip()
                _time = shopping_history_list[1].strip()
                _product = shopping_history_list[2].strip()
                if username in shopping_history_list:
                    print("用户 {0} {1} 购买了 {2}".format(_username, _time, _product))
                else:
                    pass
            print("
    -------------------------------")
    
    
    def update_shopping_history():
        # 更新消费记录
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        with open(shopping_history_f_name, "a", encoding="utf-8") as shopping_history_f:
            shopping_history_f.write("
    %s|%s|%s" % (username, now_time, goods[product_id - 1]['name']))
    
    
    # 商品信息
    goods = [
        {"name": "电脑", "price": 4000},
        {"name": "鼠标", "price": 200},
        {"name": "游艇", "price": 20000},
        {"name": "美女", "price": 1000},
        {"name": "T恤", "price": 50},
    ]
    
    # 菜单栏
    choice_info = """
    【商品编号】购买商品
    【h】消费记录
    【m】余额查询
    【q】退出商城
    
    -------------------------------
    """
    
    shopping_carts = []  # 初始购物车为空
    user_info_dict = {}  # 初始化用户信息字典为空
    user_info_f_name = "user_info.txt"  # 用户信息文件名
    user_info_f_temp_name = "user_info.txt.temp"  # 用户信息临时文件名
    shopping_history_f_name = "shopping_history.txt"  # 消费记录
    count = 0
    
    # 主程序开始
    select_user_info()  # 读取用户信息文件,组成user_info_dict字典
    while count < 3:
        username = input('
    33[34;1m请输入用户名:33[0m').strip()
        if username not in user_info_dict:
            count += 1
            print("
    33[31;1m用户名错误33[0m")
        elif user_info_dict[username]['lock'] > 0:
            print("
    33[31;1m%s 已被锁定,请联系管理员解锁后重新尝试33[0m" % (username))
            exit()
        else:
            while count < 3:
                password = input('
    33[34;1m请输入密码:33[0m').strip()
                if password == user_info_dict[username]['password']:
                    print("
    --------欢迎 %s 登陆商城--------" % (username))
                    if int(user_info_dict[username]['money']) == 0:  # money = 0表示是首次登陆的用户
                        while True:
                            money = input("
    33[34;1m请输入您的工资:33[0m")  # 工资只能是数字
                            if money.isdigit():
                                money = int(money)
                                user_info_dict[username]['money'] = money
                                update_user_info()  # 更新工资余额到文件
                                # print(money)
                                break
                            else:
                                print("
    33[31;1m您的工资只能是数字!33[0m")
                                continue
                    else:
                        money = int(user_info_dict[username]['money'])
                        print("
    33[31;1m您上次购物后的余额为:%s 元!33[0m
    " % (money))
                    while True:
                        product_list()  # 打印商品列表
                        print(choice_info)  # 选择信息
                        product_id = input("33[34;1m请输入您要的操作:33[0m").strip()
                        if product_id.isdigit():
                            product_id = int(product_id)
                            if product_id >= 1 and product_id <= len(goods):
                                if money >= goods[product_id - 1]['price']:
                                    money -= goods[product_id - 1]['price']
                                    shopping_carts.append(goods[product_id - 1]['name'])
                                    print("
    33[31;1m%s已购买成功!33[0m
    " % (goods[product_id - 1]['name']))
                                    update_shopping_history()  # 写入消费记录文件
                                    user_info_dict[username]['money'] = money
                                    update_user_info()  # 更新工资余额到文件
                                else:
                                    print("
    33[31;1m抱歉,%s购买失败!工资余额不足!33[0m" % (goods[product_id - 1]['name']))
                            else:
                                print("
    33[31;1m商品编号有误,请重新输入!33[0m")
                        elif product_id == "q":
                            if len(shopping_carts) > 0:
                                print("
    33[31;1m您本次购买的商品及商品数量如下:33[0m
    ")
                                shopping_carts_delRepeat = list(set(shopping_carts))  # 购物车列表去重
                                for index, product_carts in enumerate(shopping_carts_delRepeat, 1):
                                    print("%s. %s * %d" % (
                                        index, product_carts, shopping_carts.count(product_carts)))  # 显示同一商品数量
                            else:
                                print("
    33[31;1m您本次没有购买东西!33[0m")
                            print("
    33[31;1m您的工资余额为:%s 元!33[0m
    " % (money))
                            exit()
                        elif product_id == "h":
                            select_shopping_history()
                            choice_continue = input("
    33[34;1m回到菜单栏(直接按回车):33[0m").strip()
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    33[31;1m操作失误,强制退出!33[0m")
                                exit()
                        elif product_id == "m":
                            print("
    33[31;1m您的工资余额为:%s 元!33[0m
    " % (money))
                            choice_continue = input("
    33[34;1m回到菜单栏(直接按回车):33[0m").strip()
                            if choice_continue == 'y' or choice_continue == "Y" or choice_continue == "":
                                continue
                            else:
                                print("
    33[31;1m操作失误,强制退出!33[0m")
                                exit()
                        else:
                            print("
    33[31;1m输入有误,请重新输入!33[0m")
                else:
                    count += 1
                    print('
    33[31;1m密码错误33[0m')
                    continue
        if count >= 3:  # 尝试次数大于等于3时锁定用户
            if not username:
                print("
    33[31;1m您输入的错误次数过多,且用户为空!33[0m")
            elif username not in user_info_dict:
                print("
    33[31;1m您输入的错误次数过多,且用户 %s 不存在!33[0m" % username)
            else:
                user_info_dict[username]['lock'] += 1  # 修改用户字典(锁定状态设为1)
                # print(user_info_dict) # 更新后的用户信息字典
                update_user_info()  # 更新user_info.txt文件内容
                print("
    33[31;1m您输入的错误次数过多,%s 已经被锁定!33[0m" % username)
    View Code
  • 相关阅读:
    爬虫-解析库-beautisoup
    爬虫-请求库-requests库
    爬虫-简单爬取视频
    爬虫基本原理
    虚拟环境搭建+前后端项目搭建
    flask-自定义命令、多APP应用、 wtforms、sqlalcchemy
    flask-蓝图
    flask- 偏函数、请求上下文、信号、flask-session保存redis中
    flash框架-安装、路由、配置、请求与响应
    svn服务器镜像备份
  • 原文地址:https://www.cnblogs.com/wushuaishuai/p/8424746.html
Copyright © 2011-2022 走看看