购物车优化要求:
用户入口:

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-购物车程序优化的更多相关文章

  1. 老男孩Day2作业:购物车程序

    作业需求: 用户入口: 1.商品信息存在文件里 2.已购商品,余额记录.第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额 3.允许用户根据商品编号购买商品 4.用户选择商品后,检测是否够,够 ...

  2. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  3. 老男孩python作业2-购物车程序

    购物车程序要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 ...

  4. Python作业之购物车

    作业之购物车 购物车的要求如下: 输入总金额 选择购买的商品,金额足够时,把选择的商品添加到购物车,金额不足时,进行提示,商品将不会添加到购物车 随时可以退出程序,同时输出已购买的商品 具体代码如下: ...

  5. python学习:购物车程序

    购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...

  6. python元组与购物车程序

    #Author:zww ''' 程序:购物车程序 需求: 1.启动程序后,让用户输入工资,然后打印呢商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否足够,够就直接扣款,不够 ...

  7. 老男孩python作业7-开发一个支持多用户在线的FTP程序

    作业6:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...

  8. 老男孩python作业4-ATM程序开发

    实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...

  9. python作业:购物车(第二周)

    一.作业需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4 ...

随机推荐

  1. DAY11-MYSQL单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  2. Vim 配置文件===/etc/vimrc

    1.替换方法 替换对应的vimrc文件,定制自己的vimrc /etc/vimrc              替换此文件: /home/lmy/.vimrc     只对当前用户有效: Ubuntu9 ...

  3. PHP中几种加密形式

    1.Md5加密和Crypt都是单向加密: 登陆时把登录密码转为md5值,然后和数据库中的进行比较. 其中crypt中的盐值支持多种: 以CRYPT_STD_DES是以/0-9A-Za-z/中的两个字符 ...

  4. GBK、GB2312和UTF-8编码区分

    GBK包含全部中文字符, GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对 ...

  5. Angular22 HttpClient的使用

    1 HttpClient介绍 HttpClient时Http的演进,注意:Http在@angular/http中,而HttpClient在@angular/common/http中: 使用前需要在模块 ...

  6. SpringBoot04 日志框架之Logback

    1 日志框架选择 日志门面:SLF4J 日志实现:Logback 2 实现控制台的日志打印输出01 2.1 在需要实现日志信息打印的类中实例化Logger对象 坑01:springBoot项目默认使用 ...

  7. Netty的Channel

    Channel是一个网络端口连接,或者是可以进行读,写,链接,绑定端口的组件的连接.  Channel就是一个链接,它提供了如下的功能. 1:获取当前链接的状态 2:配置当前链接参数 3:进行read ...

  8. win10系统遇到的问题解决

      1.win10 计算器提示:需要新应用打开此calculator 运行calc,会出现需要新应用打开此Calculator,打开应用商店,找到计算器,仍然可以被使用,我怀疑是我自己在清理PC的注册 ...

  9. mysql 远程登录与表名大小写问题

    好久没写博客了,这段时间在学习一个开源的项目,里面使用到了mysql,好久没使用mysql了.在使用过程中遇到了一个问题,远程登陆.报错信息很明显,连接失败.解决思路如下: 1. 首先检查到服务器网络 ...

  10. javascript dom与字符串相互转换

    js  dom与字符串相互转换 一.字符串转换dom: function stringToDom(str){ var obj=document.createElement("div" ...