• 购物程序


    # -*- coding: utf-8 -*-
    """
    Created on Tue Sep 11 16:35:29 2018
    
    @author: 车路历程
    """
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ]
    '''
    1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
    2、允许用户根据商品编号购买商品
    3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
    4、可随时退出,退出时,打印已购买商品和余额
    5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
    扩展需求:
    1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
    2、允许查询之前的消费记录
    '''
    # 用户名为;lilu   密码为:123
    # 创建的文件名称为:purchase_records.txt
    # 按 q键 表示退出
    import re
    import os
    
    # 在当前目录下自动创建一个空文件purchase_records.txt
    desktop_path = os.getcwd()
    full_path = desktop_path + '\' + 'purchase_records' + '.txt'
    file = open(full_path, 'a+')
    file.write('')
    file.close()
    
    name = input('请输入用户名:').strip()
    key = input('请输入密码:').strip()
    
    if key.isdigit():
        if name == 'lilu' and key == '123':
            print('您上次的选购状态为:')
            with open('purchase_records.txt', 'r') as f:
                print(f.read())
            with open('purchase_records.txt', 'r') as f:
                last_time_record_list = [i for i in f.readlines()]
                
            if len(last_time_record_list) != 0:
                salary = re.search("[0-9]+", last_time_record_list[-1]).group()
                purchase_list = re.search("[[].+[]]", last_time_record_list[-2]).group()[1:-1]
                                .replace("'",'').replace(' ', '').split(",")
            else:
                purchase_list = []
                salary = input('请输入您的工资:').strip()
                
            if salary.isdigit():
                salary = int(salary)
                while True:
                    print([(i[0], i[1]['name']) for i in enumerate(goods)])
                    choice = input('请根据商品编号,选择您需要的商品:').strip()
                    if choice.isdigit() and 0 <= int(choice) < len(goods):
                        choice = int(choice)
                        if salary >= goods[choice]["price"]:
                            purchase_list.append(goods[choice]["name"])
                            print('33[1;31;40m%s33[0m已加入购物车' %goods[choice]["name"])
                            with open('purchase_records.txt', 'a') as f:
                                left_salary = salary - goods[choice]["price"]
                                f.write('salary:'+str(salary)+'---'+goods[choice]["name"]
                                         +'---'+'left_salary:'+str(left_salary)+'
    ')             
                            salary -= goods[choice]["price"]
                            print('余额为:33[1;31;40m%s33[0m' %salary)
                        else:
                            print('33[1;35;40m您的余额不足,请充值33[0m')
                    elif choice == 'q':
                        print('您选择的商品为:%s'%purchase_list)
                        with open('purchase_records.txt', 'a') as f:
                            f.write('购买记录:%s
    '%purchase_list)
                            f.write('账户余额:%s
    '%salary)
                        break
                    else:
                        print('您输入的内容有误,请重新输入')             
            else:
                print('请您输入数字')
        else:
            print('您输入的用户名和密码有误,请重新输入')
    else:
        print('请输入数字密码')
  • 相关阅读:
    Silverlight OA系统(Silverlight办公自动化系统)
    Silverlight 3把多点触摸带进Web世界
    风云的银光志Silverlight4.0教程之使用CompositeTransform复合变形特效实现倒影
    最近团队完成的Silverlight 在线棋牌网络游戏
    Silverlight 3 多点触摸功能在Windows 7 中的应用
    风云的银光志Silverlight4.0教程之遍历访问客户端用户的本地文件
    网上Silverlight项目收集
    彻底解决Windowless=true情况下TextBox不能输入的问题
    相约微软大厦,Silverlight4.0技术分享线下活动明天下午正式开始!
    Silverlight WebOS(Web操作系统)
  • 原文地址:https://www.cnblogs.com/czz0508/p/11100969.html
Copyright © 2020-2023  润新知