Python入门之实现简单的购物车功能

Talk is cheap,Let's do this!

product_list = [
    ['Iphone7 Plus', 6500],
    ['Iphone8 ', 8200],
    ['MacBook Pro', 12000],
    ['Python Book', 99],
    ['Coffee', 33],
    ['Bike', 666],
    ['pen', 2]
]
shopping_cart = []

f = open('user.txt', 'r')
lock_file = f.readlines()
f.close()
count = 0
user_list = {}

while True:
    if count == 3:
        print("用户名输入次数到达3次限制")
        break
    for i in lock_file:
        i = i.strip()
        user_list[i.split('|')[0]] = {'password': i.split('|')[1]}
    user_name = input("请输入您的用户名>>:")
    if user_name not in user_list:
        print("用户名错误")
        count += 1
    if user_name in lock_file:
        print("用户名已锁定,请联系管理员!")
        exit()
    if user_name in user_list:
        user_password = input("请输入您的密码>>: ")
        if user_password == user_list[user_name]['password']:
            print("欢迎登录电子商城")
            while True:
                salary = input("请输入您的工资:")  # 输入金额
                if not salary.isdigit():  # 判断输入的salary是不是数字
                    print("由于您的输入的工资不合法,请再次输入金额")  # 输入金额不合法
                    continue
                else:
                    salary = int(salary)  # 把输入的数字转成整形
                    break
            while True:
                print(">> 欢迎来到电子商城 <<")
                for index, i in enumerate(product_list):  # 循环商品列表,商品列表索引
                    print("%s.	%s	%s" % (index, i[0], i[1]))  # 打印商品列表,显示商品列表索引
                choice = input(">>请输入商品序号或输入 exit 退出商城>>: ").strip()
                if len(choice) == 0:  # 判断输入字符串是否为空和字符串长度
                    print('-->您没有选择商品<--')
                    continue
                if choice.isdigit():  # 判断输入的choice是不是一个数字
                    choice = int(choice)  # 把输入的字符串转成整型
                    if choice < len(product_list) and choice >= 0:  # 输入的整数必须小于商品列表的数量
                        product_item = product_list[choice]  # 获取商品
                        if salary >= product_item[1]:  # 拿现有金额跟商品对比,是否买得起
                            salary -= product_item[1]  # 扣完商品的价格
                            shopping_cart.append(product_item)  # 把选着的商品加入购物车
                            print("添加 33[32;1m%s33[0m 到购物车,您目前的金额是 
            33[31;1m%s33[0m" % (product_item[0], salary))
                        else:
                            print("对不起,您的金额不足,还差 33[31;1m%s33[0m" % (product_item[1] - salary,))
                    else:
                        print("-->没有此商品<--")
                elif choice == "exit":
                    total_cost = 0
                    print("您的购物车列表:")
                    for i in shopping_cart:
                        print(i)
                        total_cost += i[1]
                    print("您的购物车总价是: 33[31;1m%s33[0m" % (total_cost,))
                    print("您目前的余额是:33[31;1m%s33[0m" % (salary,))
                    break
            break
        else:
            print("密码错误")
            count += 1
        if count == 3:
            print("您输入的密码错误次数已达3次,将锁定您的用户!")
            f = open('blacklist.txt', 'w')
            f.write('%s' % user_name)
            f.close()
            break

            while True:
                salary = input("请输入您的工资:")  # 输入金额
                if not salary.isdigit():  # 判断输入的salary是不是数字
                    print("由于您的输入的工资不合法,请再次输入金额")  # 输入金额不合法
                    continue
                else:
                    salary = int(salary)  # 把输入的数字转成整形
                    break
            while True:
                print(">> 欢迎来到电子商城 <<")
                for index, i in enumerate(product_list):  # 循环商品列表,商品列表索引
                    print("%s.	%s	%s" % (index, i[0], i[1]))  # 打印商品列表,显示商品列表索引
                choice = input(">>请输入商品序号或输入 exit 退出商城>>: ").strip()
                if len(choice) == 0:  # 判断输入字符串是否为空和字符串长度
                    print('-->您没有选择商品<--')
                    continue
                if choice.isdigit():  # 判断输入的choice是不是一个数字
                    choice = int(choice)  # 把输入的字符串转成整型
                    if choice < len(product_list) and choice >= 0:  # 输入的整数必须小于商品列表的数量
                        product_item = product_list[choice]  # 获取商品
                        if salary >= product_item[1]:  # 拿现有金额跟商品对比,是否买得起
                            salary -= product_item[1]  # 扣完商品的价格
                            shopping_cart.append(product_item)  # 把选着的商品加入购物车
                            print("添加 33[32;1m%s33[0m 到购物车,
                            您目前的金额是 33[31;1m%s33[0m" % (product_item[0], salary))
                        else:
                            print("对不起,您的金额不足,还差 33[31;1m%s33[0m" % (product_item[1] - salary,))
                    else:
                        print("-->没有此商品<--")
                elif choice == "exit":
                    total_cost = 0
                    print("您的购物车列表:")
                    for i in shopping_cart:
                        print(i)
                        total_cost += i[1]
                    print("您的购物车总价是: 33[31;1m%s33[0m" % (total_cost,))
                    print("您目前的余额是: 33[31;1m%s33[0m" % (salary,))
                    break

 

原文地址:https://www.cnblogs.com/JetpropelledSnake/p/8648440.html