Python函数基础实战之购物车系统

一、Python函数基础实战之购物车系统

  1. 用户管理:注册(简单追加方式写入文件)、登录(限制3次尝试机会)、注销
  2. 购物功能:浏览商品、添加商品到购物车、查看购物车
  3. 数据存储:用户信息存储在文本文件中
username_list = []   # 存储当前登录用户
prize_dict = {
    '0': "芭比娃娃",
    '1': "变形金刚",
    '2': "psp游戏机",
    '3': "奥特曼",
    '4': "遥控飞机",
    '5': "chongqiwawa",
}
shopping_cart_dict = {}    # 购物车

# 用户交互输入信息
def inp_username_pwd():
    username_inp = input("请输入用户名:")
    pwd_inp = input("请输入你的密码:")
    return username_inp, pwd_inp


def login():
    print('欢迎来到登录功能!')
    if username_list:
        print('已经登录,请勿重复登录!')
        return    # 提前退出,不执行后续登录逻辑
    count = 0
    while count < 3:
        username_inp, pwd_inp = inp_username_pwd()
        with open('D:\\user_info.txt', 'r', encoding='utf8') as f:
            for user_info in f:
                user_info = user_info.strip()
                username, pwd = user_info.split(':')
                if username == username_inp and pwd == pwd_inp:
                    print('登录成功')
                    username_list.append(username_inp)
                    return
            else:
                print('账号密码错误!')
            count += 1


def register():
    print('欢迎来到注册功能!')
    username_inp, pwd_inp = inp_username_pwd()
    with open('D:\\user_info.txt', 'a', encoding='utf8') as fa:
        fa.write(f'{username_inp}:{pwd_inp}\n')


def logout():
    print('欢迎来到注销功能!')
    if not username_list:
        print('请登录之后注销!')
        return
    username_list.clear()


def shopping():
    print('欢迎来到消费功能!')
    if not username_list:
        print('请登录后使用该功能')
        return
    print('''
        0 芭比娃娃
        1 变形金刚
        2 psp游戏机
        3 奥特曼
        4 遥控飞机
        5 chongqiwawa
    ''')
    while True:
        prize_choice = input('请输入需要购买商品编号:')
        # 验证:检查是否为数字,且数字是否在有效范围
        if not prize_choice.isdigit() or prize_choice not in prize_dict:
            print("请输入有效的数字编号!")
            continue
        break  # 所有验证通过,退出循环
    prize_name = prize_dict[prize_choice]
    if prize_name in shopping_cart_dict:
        shopping_cart_dict[prize_name] += 1
    else:
        shopping_cart_dict[prize_name] = 1
    print(f'消费成功{prize_name},当前购物车情况为{shopping_cart_dict}')


def shopping_cart():
    print('恭喜剁手成功!')
    if not username_list:
        print('请登录后使用该功能')
        return
    print(f'恭喜购物成功:{shopping_cart_dict}')
    shopping_cart_dict.clear()


func_dict = {
    '1': login,
    '2': register,
    '3': logout,
    '4': shopping,
    '5': shopping_cart,
}

while True:
    print('''
    1 登录
    2 注册
    3 注销
    4 购物
    5 购物车
    q 退出
    ''')
    func_choice = input('请选择你要选择的功能(输入q退出):')
    if func_choice == 'q':
        break
    if func_choice not in func_dict:
        print('长眼睛没,看不懂数字?')
        continue
    func_dict[func_choice]()
posted @ 2025-08-01 16:10  handsomeyang++  阅读(9)  评论(0)    收藏  举报