python 练习之购物车

购物车程序
需求:用户输入工资,然后展示商品列表,用户输入需要购买的商品ID将商品添加到购物车,如果用的工资大于商品价格则加入购物车,如果小于那么将放弃该商品,用户退出时打印购买的商品和总价以及剩余的钱数。

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

product_list = [
    ['Iphone7', 6500],
    ['MackBook', 12000],
    ['Python Book', 60],
    ['Coffee', 31],
    ['Bike', 999],
]


shopping_cart = []

salary = int(input("input your salary:"))

while True:
    for index, i in enumerate(product_list):
        print("%s.	%s	%s" % (index, i[0], i[1]))

    choice = input(">>:").strip()
    if len(choice) == 0:
        print("Not going back")
        continue

    if choice.isdigit():
        choice = int(choice)
        print(choice, len(product_list))
        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("Add %s into  your shopping cart, your current balance is %s" % (product_item[0], salary))
            else:
                print("Sorry, Cannot afford this product, still need", product_item[1]-salary)
        else:
            print("Cannot find this product")

    elif choice == "exit":
        total_cost = 0
        print("you have bought below products:")
        for i in shopping_cart:
            print(i)
            total_cost += i[1]

        print("Total cost:", total_cost)
        print("your current balance is", salary)
        break

2.带身份认证的购物车程序

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import time, os
shop_car2 = []
user_list = []
count = 0
user = "jiafei"
passwd = "123456"
input_user = input("Please input your username:").strip()
f = open("user.txt", 'a+')
lines = []
###将光标调整到0,否则读取不出来
f.seek(0)
for line in f.readlines():
    lines = line.replace("
", "").split(",")
f.close()
for user in lines:
    if user == input_user:
        print("This user is locked, Please request to root!!!")
        exit()
    else:
        pass

while count < 3:
    if input_user == user:
        input_passwd = input("Please input password:")
        count += 1
        if count == 3:
            user_list.append(input_user)
            user = open("user.txt", "a")
            for input_user in user_list:
                user.write(input_user + ",")
            user.close()
        else:
            pass

        if input_passwd == passwd:
            print("login success!!!")
            #now_time = time.time()
            now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
            title = "Welcome to shopping"
            print(now_time.center(40, "*"))
            print(title.center(40,"*"))
            shop_car = []
            product_list = [
                ["iphone 7", 5888],
                ["coffe", 30],
                ["computer", 3999],
                ["mac pro", 12000],
                ["bike", 300],
            ]

            filename = r"salary.txt"
            if os.path.exists(filename):
                temp = open("salary.txt", "r")
                for money in temp.readlines():
                    salary = money
                    print("您卡上月为:", salary)
            else:
                salary = input("请输入充值金额:")
            if salary.isdigit():
                salary = int(salary)

            while True:
                print("-----------product list----------")
                for i in enumerate(product_list):
                    print(i[0], i[1][0], i[1][1])
                choice = input("choice product_  quit to exit:")

                if choice.isdigit():
                    choice = int(choice)
                else:
                    continue
                if choice < len(product_list) and choice >= 0:
                    if salary >= product_list[choice][1]:
                        salary -= product_list[choice][1]
                        price = product_list[choice][1]
                        item = product_list[choice][0]
                        print("你购买了%s, 花费了%s, 余额为%s" % (item, price, salary))
                        shop_car.append(item)
                        shop_car2.append(price)
                    else:
                        print("你的余额不足,请选择其他商品,谢谢")
                        continue
                elif choice == "quit" or choice == "q":
                    print("您购买的商品如下:")
                    for product in shop_car:
                        print(product, shop_car.count(product))

                    total_price = sum(shop_car2)

                    print("总共消费了 %s" % total_price)
                    print("您的余额为%s" % salary)
                    print("欢迎下次再来,再见!!!")

                    salary_file = open("salary.txt", "w")
                    salary_file.write("%s" % salary)
                    salary_file.close()
                    exit()
                else:
                    print("没有该商品,请重新输入,谢谢")
                    continue
        else:
            print("This password is Error:")
    else:
        print("Can not this user")
        exit()

3.带有充值功能的购物车

#!/usr/bin/env python3

# -*- coding: utf-8 -*-


import time, os

shop_car2 = []
user_list = []
month = []
count = 0

user = "jiafei"
passwd = "123456"
message = "欢迎光临好邻居超市, 请登录"
print(message.center(50, "-"))
input_user = input("Please input your username:")
f = open("user.txt", 'a+')
lines = []
###将光标调整到0,否则读取不出来
f.seek(0)
for line in f.readlines():
    lines = line.replace("
", "").split(",")
f.close()
for i in lines:
    if i == input_user:
        print("This user is locked, Please request to root!!!")
        exit()
    else:
        pass

while count < 3:
    if input_user == user:
        input_passwd = input("Please input your password:")
        count = count + 1

        if count == 3:
            user_list.append(input_user)
            user_file = open("user.txt", 'a')
            for i in user_list:
                user_file.write(i + ',')
                user_file.close()
        else:
            pass

        if input_passwd == passwd:
            print("login success!!!")
            now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
            title = "Welcome to shopping"
            print(now_time.center(40, "*"))
            print(title.center(40, "*"))
            shop_car = []
            product_list = [
                ["iphone 7", 5888],
                ["coffe", 30],
                ["computer", 3999],
                ["mac pro", 12000],
                ["bike", 300],
            ]

            filename = r"salary.txt"
            if os.path.exists(filename):
                temp = open("salary.txt", "r")
                for money in temp:
                    salary = int(money)
                    print("您的卡上余额为%s" % salary)

                    chongzhi = input("按a充值,按b进入商城")
                    if chongzhi == "b":
                        pass
                    elif chongzhi == "a":
                        some_money = input("请输入充值金额:")
                        salary = salary + int(some_money)
                        print("充值成功,最新余额为%s" % salary)
                    else:
                        print("不能识别您的输入,请确认后再次输入,谢谢!!!")
                        continue
            else:
                salary = input("请输入充值金额:")
                if salary.isdigit():
                    salary = int(salary)

            while True:
                print("-----------product list----------")
                for i in enumerate(product_list):
                    print(i[0], i[1][0], i[1][1])
                choice = input("choice product_  quit to exit:")

                if choice.isdigit():
                    choice = int(choice)
                elif choice == "quit" or choice == "q":
                    print("您购买的商品如下:")
                    for product in shop_car:
                        print(product, shop_car.count(product))

                    total_price = sum(shop_car2)

                    print("总共消费了 %s" % total_price)
                    print("您的余额为%s" % salary)
                    print("欢迎下次再来,再见!!!")

                    salary_file = open("salary.txt", "w")
                    salary_file.write("%s" % salary)
                    salary_file.close()
                    exit()

                    exit()
                else:
                    continue

                if choice < len(product_list) and choice >= 0:
                    if salary >= product_list[choice][1]:
                        salary -= product_list[choice][1]
                        price = product_list[choice][1]
                        item = product_list[choice][0]
                        print("你购买了%s, 花费了%s, 余额为%s" % (item, price, salary))
                        shop_car.append(item)
                        shop_car2.append(price)
                    else:
                        money_deficiency = input("你的余额不足,请按“y”进行充值,按“q”返回商品列表,谢谢")
                        if money_deficiency == "y":
                            chongzhi_money = int(input("请输入充值金额:"))
                            salary = int(salary) + chongzhi_money

                            print("充值成功,最新余额为%s" % salary)
                            o = open("salary.txt", 'w')
                            o.write(str(salary))
                            o.close()
                            continue
                        elif money_deficiency == "q":
                            continue
                        else:
                            print("输入不合理,请重新输入,谢谢")
                            continue

                elif choice == "quit" or choice == "q":
                    print("您购买的商品如下:")
                    for product in shop_car:
                        print(product, shop_car.count(product))

                    total_price = sum(shop_car2)

                    print("总共消费了 %s" % total_price)
                    print("您的余额为%s" % salary)
                    print("欢迎下次再来,再见!!!")

                    salary_file = open("salary.txt", "w")
                    salary_file.write("%s" % salary)
                    salary_file.close()
                    exit()
                else:
                    print("没有该商品,请输入,谢谢")
                    continue
        else:
            print("This password is Error")
            continue
    else:
        print("can not this user")
        exit()
原文地址:https://www.cnblogs.com/liyongshan/p/8512339.html