老男孩python作业3-购物车程序优化
购物车优化要求:
用户入口:
1.商品信息存在文件里
2.已购商品,余额记录。第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额
3.允许用户根据商品编号购买商品
4.用户选择商品后,检测是否够,够就直接扣款,不够就提醒
5.可随时退出,退出时,打印移购买商品和余额
商家入口:
1.可以添加商品,修改商品价格1. 运行程序输出第一级菜单
客户端入口程序代码:
import sys
def client_first_login(): #首次登录函数
client_salary=input("请输入充值金额:")
if client_salary.isdigit():
client_salary=int(client_salary)
f_client_shopping_record.write(login_name+"\t") #将购物记录写入文本
f_client_shopping_record.write(str(client_salary)+"\t")
f_client_shopping_record.write("no_product" + "\n")
for i3 in enumerate(product_lists): #循环打印列表元素及其索引
print(i3)
while True:
choice=input("请输入英雄皮肤编号,按q退出:")
if choice.isdigit():
choice=int(choice)
if choice>=0 and choice<=len(product_lists): #输入的数据在产品清单编号范围之内
product_price=int(product_lists[choice][1])
if client_salary>product_price:
shopping_list.append(product_lists[choice])
client_salary-=product_price
f_client_shopping_record.write(login_name + "\t") #在client_shopping_record中记录购物信息
f_client_shopping_record.write(str(client_salary) + "\t")
f_client_shopping_record.write(product_lists[choice][0] + "\n")
print("已购买%s,您的余额为%s"%(product_lists[choice][0],client_salary)) else:
print("对不起您的金额不足,请去充值!")
print(shopping_list)
else:
print("请输入合理的产品编号")
elif choice=="q":
print(shopping_list)
sys.exit() def client_again_login(): #再次登录函数
client_salary = input("请输入充值金额:")
if client_salary.isdigit():
client_salary = int(client_salary)+int(count_cost)
f_client_shopping_record.write(login_name + "\t")
f_client_shopping_record.write(str(client_salary) + "\t")
f_client_shopping_record.write("no_product" + "\n")
for i3 in enumerate(product_lists):
print(i3)
while True:
choice = input("请输入英雄皮肤编号,按q退出:")
if choice.isdigit():
choice = int(choice)
if choice >= 0 and choice <= len(product_lists):
product_price = int(product_lists[choice][1])
if client_salary > product_price:
shopping_list.append(product_lists[choice])
client_salary -= product_price
f_client_shopping_record.write(login_name + "\t")
f_client_shopping_record.write(str(client_salary) + "\t")
f_client_shopping_record.write(product_lists[choice][0] + "\n")
print("已购买%s,您的余额为%s" % (product_lists[choice][0], client_salary)) else:
print("对不起您的金额不足,请去充值!")
print(shopping_list)
else:
print("请输入合理的产品编号")
elif choice == "q":
print(shopping_list)
sys.exit() def product_list(): #产品清单读取
f_product_list=open("product_list","r+",encoding="utf-8")
for i4 in f_product_list:
product_lists.append(i4.split()) count_client=0
count_cost=0
count_account=0
account_password=''
product_lists=[]
shopping_list=[]
product_list()
login_name=input("请输入英雄联盟账号:")
f_client_shopping_record=open("client_shopping_record","r+",encoding="utf-8")
for i1 in f_client_shopping_record:
if login_name in i1:
count_client+=1
count_cost=i1.split()[1] f_client_account_message=open("client_account_message","r+",encoding="utf-8")
for i2 in f_client_account_message:
if login_name in i2:
count_account+=1
account_password=i2.split()[1] if count_client==0:
if count_account>0:
while True:
account_psw=input("请输入密码:")
if account_password==account_psw:
print("欢迎%s,登录英雄联盟收银台"%login_name)
client_first_login()
else:
print("密码错误请重新输入密码")
else:
print("用户名不存在")
sys.exit()
else:
print("欢迎%s,登录英雄联盟收银台,您的余额还剩%s元"%(login_name,count_cost))
client_again_login()
商家入口程序代码:
f_business=open("product_list","r+",encoding="utf-8")
f_business.write("卡莎"+"\t")
f_business.write(""+"\n")
f_business.flush() #flush函数作用:将缓冲区中的数据立刻写入文件,同时清空缓冲区
f_business.close()
老男孩python作业3-购物车程序优化的更多相关文章
- 老男孩Day2作业:购物车程序
作业需求: 用户入口: 1.商品信息存在文件里 2.已购商品,余额记录.第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额 3.允许用户根据商品编号购买商品 4.用户选择商品后,检测是否够,够 ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- 老男孩python作业2-购物车程序
购物车程序要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 ...
- Python作业之购物车
作业之购物车 购物车的要求如下: 输入总金额 选择购买的商品,金额足够时,把选择的商品添加到购物车,金额不足时,进行提示,商品将不会添加到购物车 随时可以退出程序,同时输出已购买的商品 具体代码如下: ...
- python学习:购物车程序
购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...
- python元组与购物车程序
#Author:zww ''' 程序:购物车程序 需求: 1.启动程序后,让用户输入工资,然后打印呢商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否足够,够就直接扣款,不够 ...
- 老男孩python作业7-开发一个支持多用户在线的FTP程序
作业6:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...
- 老男孩python作业4-ATM程序开发
实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...
- python作业:购物车(第二周)
一.作业需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4 ...
随机推荐
- day17-jdbc 3.jdbc快速入门
通过java程序操作数据库. 对数据库操作是对记录的操作.记录就是DML和DCL. 只要Java程序跟任何设备进行了连接,用完之后必须释放资源.最简单基础班讲I/O流,Java跟文件进行了连接,用完之 ...
- Luogu 3479 [POI2009]GAS-Fire Extinguishers
补上了这一道原题,感觉弱化版的要简单好多. 神贪心: 我们设$cov_{x, i}$表示在$x$的子树中与$x$距离为$i$的还没有被覆盖到的结点个数,设$rem_{x, i}$表示在$x$的子树中与 ...
- getBytes()详解.RP
在java中,getBytes()方法如果不指定字符集,则得到的是一个操作系统默认的编码格式的字节数组:如果指定字符集,则得到的是在指定字符集下的字节数组,如: byte[] b_gbk = &quo ...
- Python中list常用的10个基本方法----list的灰魔法
########################list 的常用的10个基本方法################################## list 类 列表# 1 列表的基本格式#2 可以 ...
- C++面试笔记--单链表
1.编程实现单链表删除节点. 解析:如果删除的是头节点,如下图: 则把head指针指向头节点的下一个节点.同时free p1,如下图所示: 如果删除的是中间节点,如下图所示: 则用p2的n ...
- linux下top命令参数解释
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. top - 01:06:48 up 1:22, 1 ...
- 《Effective Java》第10章 发并
第66条:同步访问共享的可变数据 Java语言规范保证读或者写一个变量是原子的(atomic ) ,除非这个变量的类型为long或者double. [java中long和double类型操作的非原子性 ...
- 前端文件加载 net::ERR_CONTENT_LENGTH_MISMATCH
前端文章加载的时候有的时候图片不显示,有的时候文件加载不了,检查nginx设置都没有问题,最近才不显示,经检查是nginx服务器磁盘空间已满,将.log文件移动到其他位置 cp /dev/null ...
- win10下安装配置mysql-8.0.13--实战可用
1.下载mysql-8.0.13安装包 1 https://dev.mysql.com/downloads/mysql/ 选择zip安装包下载就好. 2.解压到你要安装的目录 3.创建my.ini配置 ...
- java7大设计原则
1.单一职责原则(srp) 每一个对象或者类只有一个职责.高内聚.低耦合. 2.开闭原则(ocp) 对扩展开放,对修改关闭.使用性,灵活性,扩展性,稳定性延续性,重复.维护. 3.里氏替换原则(lsp ...