python学习--购物车3

根据购物车题目的需求,本次分享的程序是将商品列表分级显示,例如:生活用品|

|牙膏

|牙刷

|毛巾

家用电器|

|电饭锅

即将列表存储商品信息,改成由字典来存放,程序如下:

#初始化产品菜单
product_list = {"生活用品":[[‘毛巾‘,20],
                [‘洗衣液‘,80],
                [‘衣架‘, 10],
                [‘洗衣粉‘,60],
                [‘洗发水‘, 80],
                [‘厕洗剂‘,50]],
                "家电":[[‘电视机‘,5000],
                      [‘电饭煲‘,300],
                      [‘电磁炉‘,200],
                      [‘高压锅‘,800],
                      [‘电饼铛‘,200]],
                }

current_layer = {}
shopping_cart = {}
shopping_cart = {}
last_layer = [ product_list ]
current_layer = product_list
salary = 0

#登录操作
username = input("username:")
print("****************************")
password = input("password:")
print("****************************")

i = 1
while i <= 3:
    if username == "maomao" and password == "123":
        print("welecom to shopping maket")
        break

    elif i == 3:
        print("input more than three times, try again after 2 hours")
        break
    else:
        print("you put an wrong name or password,please input again")

    i += 1
    username = input("username:")
    password = input("password:")

#账号充值操作
while True:
    temp = input("you account is zear,please rechange money to buy:")

    if temp.isdigit():
        salary = int(temp)
        break

    print("you input a unknow number,please check it and input again!")

#购物操作
while True:
    print("***************   系统操作说明   ****************")
    print("   q : 退出系统")
    print("   c : 账号充值")
    print("   h : 购物记录")
    print("   l : 商品列表")
    print("************************************************")

    oper = str(input(">>:")).strip()

    if oper == ‘q‘:   #判断是否退出
        exit()

    elif oper == ‘c‘:  #判断是否充值
        temp = input("please rechange money to buy:")
        if temp.isdigit():
            salary = int(temp)

    elif oper == ‘h‘:  # 查看购物历史记录
        f = open("product.txt", "r+", encoding="utf8")

        for i in f:
            print(i.strip())
        f.close()

    elif oper == ‘l‘:  #进入购物列表
        while True:
            if isinstance(current_layer, dict):   #是否为列表
                for key in current_layer:
                    print(key)
            else:
                index = 0
                for product in current_layer:
                    print(index, product)
                    index += 1

            choice = input(">>:").strip()
            if len(choice) == 0:continue

            if choice.isdigit():
                choice = int(choice)
                if choice >= 0 and choice < len(current_layer):
                    product = current_layer[choice]
                    if product[1] <= salary:
                        if product[0] in shopping_cart:
                            shopping_cart[product[0]][1] += 1
                        else:
                            shopping_cart[product[0]] = [product[1], 1]
                        salary -= product[1]
                        print("\033[42;1mAdded product: %s  into shoing cart ,you current balance %s \033[0m"
                              %(product[0],str(salary)))
                    else:
                        print("\033[42;1m [warning] you balance is no enough\033[0m, product:" + str(
                            product[1]) + " short for "+ str(product[1] - salary))
                else:
                    print("\033[41;1mYou choice product is no in product_list\033[0m")

            elif choice in current_layer:
                if isinstance(current_layer, dict):   #是否为列表
                    last_layer.append(current_layer)
                    current_layer = current_layer[choice]

            elif choice == "b": #返回上层商品目录
                if last_layer:
                    current_layer = last_layer[-1]
                    last_layer.pop()

            elif choice == "q": #退出
                print("\033[34;1m---------------product list-----------------\033[0m")
                print("\033[42;1m")
                print("id   product       number pric Totalpric")
                index = 1
                total_mon = 0

                f = open("product.txt", "a+", encoding="utf8")
                import datetime

                for i in shopping_cart.keys():
                    total_mon += shopping_cart[i][1] * shopping_cart[i][0]

                    print("%d %10s %7d %7d %7d" % (index, i, shopping_cart[i][1], shopping_cart[i][0],
                                                   shopping_cart[i][1] * shopping_cart[i][0]))

                    if index == 1:
                        now_time = datetime.datetime.now().strftime(‘[%Y-%m-%d]‘)
                        f.write(now_time + "\n")
                        # f.write(i+ "%7d"%+shopping_cart[i][0]+"\n")
                    f.write(i + "\n")
                    index += 1
                f.close()

                print("you pay money is:", total_mon)
                print("you level money is:", salary)
                print("\033[0m")
                print("\033[34;1m-------------end-------------\033[0m")

                exit()
            elif choice == "c":  #充值
                temp = input("please rechange money to buy:")
                if temp.isdigit():
                    salary = int(temp)
            else:
                print("输入内容不合法!")
时间: 2024-11-15 00:31:55

python学习--购物车3的相关文章

python学习--购物车2

将购物车程序分模块编程,购物车1写了登录 部分,下面改写购物部分: #!/usr/bin/env python product_list = [['Iphone7',5800], ['coffee',30], ['tea', 10], ['Python Book',99], ['Bike', 199], ['ViVo X9',2499]] shopping_cart = {} username = input("username:")print("**************

python学习--购物车4

模拟购物车的程序,是对之前学习的基础知识----字典.列表.文件的读写.字符的操作等知识的一次模拟练习,但在实际的编程中,将所有功能放在一个函数中实现,无疑减弱了程序的可读性和可维护性,购物车4引进了函数的概念,也将购物车需求经过整理如下: 要求 1.   登录功能 1>  登录验证:1.账户是否被锁定:2.验证用户为注册用户,登录密码是否正确,用户名与密码存放在文件中: 2>  验证失败三次,锁定账户,锁定账户在五分钟内不能再次登录,锁定账: 户存放在文件中. 2.   账户充值 1>

python学习-购物车小程序

购物车功能要求: 要求用户输入总资产,例如:2000显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功.附加:可充值.某商品移除购物车 1 goods = [ 2 {"name": "电脑", "price": 1999}, 3 {"name": "鼠标", "price": 10}, 4 {"name":

python学习--购物车1

购物车程序,程序要求如下: 1. 商品信息- 数量.单价.名称 2. 用户信息- 帐号.密码.余额 3. 用户可充值 4. 购物历史信息 5. 允许用户多次购买,每次可购买多件 6. 余额不足时进行提醒 7. 用户退出时 ,输出本次购物信息 8. 用户下次登陆时可查看购物历史 9. 商品列表分级 该程序涉及到的知识有:1.条件判断:2.循环应用:3.字典,以及列表的应用:4.文件的读写操作. 先写登录操作部分代码: #登录操作 username = input("username:")

python学习第二天

python学习的第二天就是个灾难啊,这天被打击了,自己写的作业被否认了,不说了,写博客还是个好习惯的,要坚持下去,就不知道能坚持到什么时候.呵呵!!! 这天教的知识和第一天的知识相差不大,区别在于比第一天讲的更细了(我们是两个老师教的,风格是不一样的),这次也写那些比较细的知识点. python的简介 (1)你的程序一定要有个主文件. (2)对于python,一切事物都是对象,对象基于类创建.#似懂非懂,不过有那么点似懂. 知识点 #__divmod__ 会把两个数字相除的商和余数以元组的方式

Python学习day5作业-ATM和购物商城

Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用户间转帐 支持多用户 管理员可添加账户.指定用户额度.冻结用户等 购物车: 商品信息- 数量.单价.名称 用户信息- 帐号.密码.余额 用户可充值 购物历史信息 允许用户多次购买,每次可购买多件 余额不足时进行提醒 用户退出时 ,输出当次购物信息 用户下次登陆时可查看购物历史 商品列表分级显示 1

python练习——购物车程序

思路: 1.首先生成一个用户字典文件,元素包含用户名,密码,余额,购物车清单.数量 2.导入字典内容,用于验证登录和记录用户信息 3.首页可以选择登录.注册和浏览商品列表 4.注册模块,要根据字典key值判断用户是否存在,存在就返回,不存在创建,密码字数限制没有做,getpass模块在window平台报错,没有写 5.登录模块,根据字典内容验证,验证成功登录,不成功询问是否注册,三次验证失败退出程序 6.登录成功后,判断用户字典中是否存在余额,不存在则要求用户输入金额,并保存在字典中 7.打印商

Python学习系列(四)Python 入门语法规则2

Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, utf8解码成Unicode,再将unicode编码成gbk 对于py3.5 如果utf8>gbk, utf8 直接编码成gbk(中间那一步直接被优化了) 3.很多时候,这个可以直接跳过,只有当编码出下问题的时候,再考虑这个知识点 二.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算

python学习---购物商场与ATM

[软件说明& 注意事项] 1.购物商场&ATM程序开发环境: OS:64位Windows 7 IDE:pycharm4.0.4 python版本:3.5.1 32位 2.购物商场&ATM程序只做python学习使用,版权有作者所有,未经过作者本人同意,不得将此购物商场&ATM程序应用于商业用途. 目录结构如下: shopmall_atm |--shopmall | |--shopmall_handle.py | |--__init__.py |--atm | |--atm_