购物程序「建议收藏」

购物程序「建议收藏」#-*-coding:utf-8-*-"""CreatedonTueSep1116:35:292018@author:车路历程"&

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

# -*- 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('\033[1;31;40m%s\033[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)+'\n')             
                        salary -= goods[choice]["price"]
                        print('余额为:\033[1;31;40m%s\033[0m' %salary)
                    else:
                        print('\033[1;35;40m您的余额不足,请充值\033[0m')
                elif choice == 'q':
                    print('您选择的商品为:%s'%purchase_list)
                    with open('purchase_records.txt', 'a') as f:
                        f.write('购买记录:%s\n'%purchase_list)
                        f.write('账户余额:%s\n'%salary)
                    break
                else:
                    print('您输入的内容有误,请重新输入')             
        else:
            print('请您输入数字')
    else:
        print('您输入的用户名和密码有误,请重新输入')
else:
    print('请输入数字密码')

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168330.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎样开挂的教程_销售常见的八个问题

    怎样开挂的教程_销售常见的八个问题概念篇1、什么是外挂它是怎样定义?外挂是指某些人利用自己的电脑技术专门针对一个或多个网络游戏,通过改变网络游戏软件的部分程序,制作而成的作弊程序。这是一个让游戏公司痛恨、玩家分派、作者成就、工作室必备的游戏辅助软件程序。2、一般外挂分几类?有模拟类、内存类、封包类、变态类、脱机类,一般来讲模拟类是最轻的,比如用按键精灵来代替鼠标和键盘的操作;内存挂、封包挂是比较正规和普遍的

    2022年10月31日
    0
  • C语言之数组的基本知识

    C语言之数组的基本知识在没接触数组之前,同学们用的都是定义一个一个变量来存放数据,但是这样就有一个缺陷,如果数据量很大的时候,比如有50个学生的成绩需要录入进去,那么定义50一个变量将会非常耗费时间,而且用scanf()函数输入数据的时候也很麻烦。intstu1,stu2,stu3,…,stu50;scanf(&quot;%d%d%d%d…&quot;,&amp;amp;stu1,&amp;amp;stu2,&amp;amp;s…

    2022年7月11日
    19
  • mysql时序性数据库_时序数据库入门[通俗易懂]

    mysql时序性数据库_时序数据库入门[通俗易懂]数据库的模型包含关系型、key-value型、Document型等很多种,那么为什么新型的时序数据库成为监控数据存储的新宠呢?下面就会从为什么需要时序数据库?时序数据库的数据结构两个方面来介绍一下时序数据库。1.为什么需要时序数据库1.1时序数据特点时序数据有如下几个特点:基本上是插入操作较多且无更新的需求数据带有时间属性,且数据量随着时间递增插入数据多,每秒钟插入需要可到达千万甚至是上…

    2022年10月5日
    0
  • DB2_自动生成值

    DB2_自动生成值

    2021年9月2日
    61
  • uva-10194-排序

    uva-10194-排序

    2022年3月5日
    47
  • 谷歌学术使用方法_想用谷歌浏览器怎么办

    谷歌学术使用方法_想用谷歌浏览器怎么办谷歌学术简明使用说明源PDF文件下载链接:https://github.com/zjcao/books/blob/master/google_scholar_instructions.pdf

    2022年10月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号