题目要求:

优化版的购物车

用户入口:1.商品的信息存到文件里2.已购商品,余额记录
商家入口:1.可以添加商品 2.修改商品价格

Read Me:继上次简单购物车的实现,有再一次的升级优化了下,现实现以下几个功能:

1.有客户操作和商家操作,实现,客户可以买东西,当金额不足提醒,最后按q退出,打印购物车列表

2.商家可以添加操作、修改商品价格操作

3.此次所有的商品信息存储在product.txt文件中例:Watch: 1000,这样的形式存在。

4. 运行此程序需要有商品信息的txt文件如上,按提示操作即可

思维导图:

代码如下:

  1 #!/usr/bin/env python
  2 #-*- Coding:utf-8 -*-
  3 # Author:Eric.Shen
  4 #2018.02.06
  5 #path python3.5
  6 #优化版的购物车
  7 #用户入口:
  8 #1.商品的信息存到文件里
  9 #2.已购商品,余额记录
 10 #商家入口:
 11 #1.可以添加商品 2.修改商品价格
 12 #存储商品列表
 13 import fileinput
 14 product_list = []
 15 f = open("product.txt","r")#打开文件
 16 for line in f.readlines():
 17     line =line.strip()#去掉最后一个换行符
 18     index,item = line.split(":")#以冒号分割得到前后两个数据
 19     product_list.append((index,item))#添加的数据
 20 f.close()
 21
 22 def print_product_list():
 23     for index,item in enumerate(product_list):
 24         print(index,item)
 25 #用户入口
 26 #用户购物
 27 def user_shopping():
 28     salary = input("请输入你的薪水:")
 29     print_product_list()
 30     if salary.isdigit():
 31        salary = int(salary)
 32     shopping_list = []#存放用户购物车清单
 33     while True:
 34         option = input("喜欢那个就买哪个(对应的标号):")
 35         if option.isdigit():
 36             option = int(option)
 37             if option >= 0 and option <= len(product_list):
 38                 p_item = product_list[option]#用户选择的商品
 39                 #print(product_list)
 40                 #print(p_item[1])
 41                 c_num = int(p_item[1])
 42                 if salary >= c_num:
 43                    shopping_list.append(p_item)
 44                    salary -= c_num
 45                    print("添加购物车成功,你的余额还有%s"%(salary))
 46                 else:
 47                    print("你的余额不足,只剩%s元"%(salary))
 48             else:
 49                 print("输入错误,请重新输入!")
 50         elif option == "q":
 51             print("----------------购物清单---------------")
 52             for s_list in  shopping_list:
 53                 print(s_list)
 54             print("你的余额为%s"%(salary))
 55             print("..........exit.........")
 56             exit()
 57         else:
 58             print("无效的输入")
 59
 60 #商家入口
 61 #商家添加商品
 62 def add_product():
 63     name_of_product = input("请输入你要添加的商品名字:")
 64     price_of_product = input("请输入你要添加商品的价格:")
 65     f = open("product.txt","a")
 66     f.write(str("\n"+name_of_product)+": %s"%(price_of_product))
 67     f.close()
 68     print("添加成功!\nexit----------")
 69
 70
 71
 72 #修改商品价格
 73 def change_price():
 74     print_product_list()#打印商品列表
 75     choice = input("请输入你的选择:")
 76     #name_of_change = input("请输入你要改变的商品名字")
 77     price_of_change = input("请输入你要改变商品的价格:")
 78     if choice.isdigit():
 79         choice = int(choice)
 80         if choice >=0 and choice <= len(product_list):
 81             p_item = product_list[choice]#选择的商品
 82             #c_num = int(p_item[1])#转换成int类型
 83             for line in fileinput.input("product.txt",inplace = "%s"%(choice)):#对输入的选择行进行修改
 84                 line = line.replace("%s"%(p_item[1]),"%s"%(price_of_change)).strip()
 85                 print(line)
 86             exit("修改成功!")
 87         else:
 88             print("输入无效")
 89     else:
 90         if choice == "q":
 91             exit("退出")
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105 if __name__ == "__main__":
106     print("--------------------------"
107           "--------------------------"
108           "\n"
109           "                  欢迎进入购物菜单      "
110           "\n"
111           "\n"
112           "商家请按b,用户请按c\n"
113           "--------------------------"
114           "--------------------------")
115     c_num = input("请输入你的选择:")#使用者选择
116     if c_num == "b":
117         print("--------------------------"
118               "--------------------------"
119               "\n"
120               "                  欢迎进入商家界面      "
121               "\n"
122               "\n"
123               "添加商品请按a,修改价格请按c\n"
124               "--------------------------"
125               "--------------------------")
126         c_num2 = input("请输入你的选择:")
127         if c_num2 == "a":
128             #实现添加商品功能
129            add_product()
130         if c_num2 == "c":
131             #实现商品价格修改功能
132            change_price()
133         else:
134             print("输入有误!")
135     if c_num == "c":
136         print("--------------------------"
137               "--------------------------"
138               "\n"
139               "                  欢迎进入用户界面      "
140               "\n"
141               "\n"
142
143               "--------------------------"
144               "--------------------------")
145         #购物功能
146         user_shopping()
147     else:
148         print("输入有误程序退出!")

View Code

结束:有什么错误欢迎指出来,欢迎打扰  -_-

转载于:https://www.cnblogs.com/zhengyuan/p/8421539.html

python之作业--------购物车优化相关推荐

  1. python做作业没头绪_使用Python做作业

    python做作业没头绪 Applying OpenCV and Tesseract to do your math-homework 应用OpenCV和Tesseract进行数学作业 The pos ...

  2. kaggle经典题--“泰坦尼克号”--0.8275准确率--东北大学20级python大作业开源(附详细解法与全部代码以及实验报告)

    kaggle经典题--"泰坦尼克号"--0.8275准确率--东北大学20级python大作业开源(附详细解法与全部代码以及实验报告) 前言 开发环境 一.导入包: 二.实验数据的 ...

  3. MindOpt有关于Python的建模与优化

    目录 前言 一.安装 二.Python 的建模与优化 2-1.MdoModel类 2-2.MdoExprLinear类 2-3.官方案例--营养调配 总结 前言 周四,天气渐渐凉快了下来. 一.安装 ...

  4. 咕泡学院:(1)唐宇迪python课程作业

    超级详细的python思维导图见链接: https://download.csdn.net/download/m0_37957160/22526313 python数据科学必备工具实战思维导图链接: ...

  5. Python构建基于elkan优化算法的K-Means聚类模型

    Python构建基于elkan优化算法的K-Means聚类模型 目录 Python构建基于elkan优化算法的K-Means聚类模型 #elkan优化算法

  6. 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...

  7. python编程书籍1020python编程书籍_代写INFT 1020作业、Database作业代做、Java课程作业代写、c++,Python编程作业代做...

    代写INFT 1020作业.Database作业代做.Java课程作业代写.c++,Python编程作业代做 日期:2020-04-25 10:27 INFT 1020 Database Fundam ...

  8. python实验报告代写价格_代写OS python程序作业、代写代写OS作业、代写OS实验报告...

    代写OS python程序作业.代写代写OS作业.代写OS实验报告 日期:2018-06-11 03:21 CSE 304 - Operating Systems DUE: June 11. Subm ...

  9. c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)

    编者按 优化求解器对于做运筹学应用的学生来说,意义重大. 然而直到今天,放眼望去,全网(包括墙外)几乎没有一个系统的Cplex中文求解器教程. 作为华人运筹学的最大的社区,『运筹OR帷幄』 责无旁贷, ...

  10. Python代写CSSE1001/7030 python程序作业、代做python CSSE1001/7030程序作业、 代写CSSE1001/7030 python 作业...

    Python代写CSSE1001/7030 python程序作业.代做python CSSE1001/7030程序作业. 代写CSSE1001/7030 python 作业 Uno++ Assignm ...

最新文章

  1. LeetCode【位运算】371. 两整数之和
  2. 2017-11-15 软件包 java.io学习
  3. Win8装SQL2008需要离线安装 .Net3.5
  4. 计算机专业会议评级,2018计算机专业工程教育认证研讨会
  5. MFC初探 —— 子窗体相对于显示屏位置固定
  6. hdu 6203 ping ping ping(贪心+树状数组+dfs序)
  7. php 中国姓名验证规则,我想在表单验证中加入中文姓名合法性模糊匹配判断?...
  8. Docker 视频教程 ( 猿课 )
  9. 太阳能计算机屏幕是什么材质,电脑显示器表面是什么材质的 什么是液晶玻璃...
  10. python软件工程师认证证书报考条件_软件工程师怎么考 报考条件是什么
  11. 安装office2010失败,提示因为安装了office2010早期试用版本或在安装过程中出错
  12. 子线程与主线程之间的通信
  13. VMware添加共享硬盘
  14. 硬盘的Smart信息说明
  15. LeetCode 43. 字符串相乘【c++/java详细题解】
  16. touch触摸事件以及常用触摸功能
  17. 视频号小白如何做出一个赚钱的视频号?
  18. 英国内政大臣:科技公司给信息加密不可接受
  19. micropython实现mpy的ota(有用,推荐)
  20. 大数据项目之电商数仓、业务数据介绍、电商系统表结构

热门文章

  1. 蓝牙设备一键切换工具ToothFairy for Mac中文
  2. Mac上设置共享视频音乐或照片
  3. MacOS 应对系统无响应的方法
  4. 一线互联网企业负载均衡和应用优化基础
  5. mycat基础实验之主从配置读写分离和分表
  6. Andrew Ng(coursera)单变量线性回归(LINEAR REGRESSION WITH ONE VARIABLE)
  7. UIKit 框架之UIScrollView
  8. phpcms v9二级栏目生成到根目录后三级栏目无法访问的解决办法
  9. dyve/django-bootstrap-toolkit
  10. 讲真,WiFi 6到底6在哪儿