• 17.python购物车程序作业


    购物车程序作业需求:

    1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表

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

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

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

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

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

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

    代码如下:

    # Author:pengp
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    with open("user_shopping","r",encoding="utf-8") as f:
        yj = eval(f.read())
    
    while True:
        username = input("请输入用户名: 33[0m")
        passwd = input("请输入密码: 33[0m")
        if username == yj["name"] and passwd == yj["passwd"]:
            print("您的资金余额为:33[1;31;0m%s33[0m"%(yj["salary"]))
        else:
            print("用户名或密码错误")
            exit()
    
        while True:
            pay = input("请问要充值吗? (y/n):")
            if pay == "y":
                pay_rmb =  input("请输入需要充值的金额: ")
                salary_new = yj["salary"] + int(pay_rmb)
                yj["salary"] = salary_new
                # yj_pay_salary = (yj["salary"])
                print("现在余额为33[1;31;0m%d33[0m" %(yj["salary"]))
                with open("user_shopping","w",encoding="utf-8") as ff:
                    ff.write(str(yj))
            elif pay == "n":
                f = open('product_list', 'r')
                product_list = f.readlines()
                while True:
                    print("product_list".center(50, '-'))
                    for index,item in enumerate(product_list):
                        item = item.split()
                        print(index,item)
                    user_choice = input("请选择购买商品编码,退出请按e: ")
                    if user_choice.isdigit():
                        user_choice = int(user_choice)
                        if user_choice < len(product_list) 
                                and user_choice >= 0:
                            p_item = product_list[user_choice].split()
                            if int(p_item[1])<yj["salary"]:
                                salary_banance = yj["salary"] - int(p_item[1])
                                yj["salary"] = salary_banance
                                yj["shopping_list"].append(p_item)
                                with open("user_shopping","w",encoding="utf-8") as f_new:
                                    f_new.write(str(yj))
                                print("商品%s已购买"%p_item)
                            else:
                                print("余额不足,请先充值")
                                break
                        else:
                            print("商品编号%s不存在,请重新输入:"%user_choice)
                            continue
                    elif user_choice == 'e':
                        print('shopping_list'.center(50,'-'))
                        for index,p in enumerate(yj["shopping_list"]):
                            print(index,p)
                        exit("您的余额为:%s,欢迎下次光临" % (yj["salary"]))
  • 相关阅读:
    python将阿拉伯数字转换为中文书写的数字形式
    python生成textgrid文件
    将 Nodejs 服务部署到阿里云服务器
    盛最多水的容器
    连续子数组的最大和
    数组中出现次数超过一半的数字
    变态跳台阶
    二进制中 1 的个数
    784.字母大小写全排列
    链表中环的入口节点
  • 原文地址:https://www.cnblogs.com/pengp/p/6850147.html
Copyright © 2020-2023  润新知