Python实现购物系统(示例讲解)


Posted in Python onSeptember 13, 2017

要求:

用户入口

1、商品信息存在文件里
2、已购商品,余额记录。

商家入口

可以添加商品,修改商品价格

Code:

商家入口:

# Author:P J J

import os

ps = '''
1 >>>>>> 修改商品
2 >>>>>> 添加商品
按q为退出程序
'''

# 打开两个文件,f文件为原来存取商品文件,f_new文件为修改后的商品文件
f = open('commodit', 'r', encoding='utf-8')
f_new = open('commodit_update', 'w+', encoding='utf-8')
file_list = f.readlines()

# 打印商品信息
while True:
 productslist = []
 # 从商品文件中读取出来的数据存放到productslist列表里
 for line in file_list:
  productname = line.strip().split()
  productname, oldprice = line.strip("\n").split()
  productslist.append([productname, int(oldprice)])
 choose = input("%s请选择:" %ps)
 if choose =='1':
  for index, item in enumerate(productslist):
   print(index, item)
  productindex = input("请输入要修改价格的商品序号:")
  if productindex.isdigit():
   productindex = int(productindex)
  while True:
   print('要修改商品信息:', productslist[productindex])
   price = input("请输入要修改的价格:")
   if price.isdigit():
    price = int(price)
    productslist[productindex][1]=price
    break
   else:
    print("请正确的输入价格!")
    continue

  #已经修改好的商品列表循环写入f_new文件夹

  for products in productslist:
   insert_data = "%s %s" %(products[0],products[1])
   f_new.write(insert_data+'\n')
  print("商品价格已经修改!")
  # 替换原来的文件
  f_new = open('commodit_update', 'r', encoding='utf-8')
  data = f_new.readlines()
  f = open('commodit', 'w+', encoding='utf-8')
  for line in data:
   f.write(line)
  f.close()
  f_new.close()
  #删除替换文件
  os.remove('commodit_update')
 elif choose =='2':
  # 添加商品
  f = open('commodit', 'a+', encoding='utf-8')
  pricename = input("请输入商品名:")
  while True:
   price = input("请输入商品价格:")
   if price.isdigit():
    f.writelines('%s %s\n' % (pricename, price))
    break
   else:
    print('输入错误请重新输入!')
    continue
  f.close()
  continue
 elif choose =='q':
  break
 else:
  print("输入错误请重新输入")
  continue

买家入口:

# Author:P J J

productslist = []
f = open('commodit','r',encoding='utf-8')
for line in f:
 productname,price = line.strip('\n').split()
 productslist.append((productname,int(price)))

print(productslist)
shopping_list = []

salary = input("请输入你的现金:")
if salary.isdigit():
 salary = int(salary)
 while True:
  # for item in productslist:
  #  print(productslist.index(item),item)
  for index,item in enumerate(productslist):
   print(index,item)
  #判断用户要输入
  user_choice = input("请选择要买什啥>>>:")
  if user_choice.isdigit():
   user_choice = int(user_choice)
   if user_choice < len(productslist) and user_choice >= 0:
    p_item = productslist[user_choice]
    if p_item[1] <= salary: #买得起
     shopping_list.append(p_item)
     salary -=p_item[1]
     print("加入 %s 购物车你的余额是\033[31;1m%s\033[0mRMB" %(p_item,salary))
    else:
     print("\033[32;1m 你的余额只剩[%s]RMB啦,还买个毛线\033[0m " %salary)
   else:
    print("\033[41;1m您输入的商品不存在,请重新输入!\033[0m")
  elif user_choice == 'q':
   print("----shopping_list----")
   for p in shopping_list:
    print(p)
   print("你的余额:\033[31;1m%s\033[0mRMB" %salary)
   #简单的余额记录
   f = open('salary','w+',encoding='utf-8')
   f.writelines(str(salary))
   f.close
   exit()
  else:
   print("错误选项")

操作流程:


Python实现购物系统(示例讲解)

我的目录:


Python实现购物系统(示例讲解)

1、新建一个文件,名为 commodit 商品排列格式如下(自己可以更改商品名字或者价格)

2、运行商家入口测试功能


Python实现购物系统(示例讲解)

我们输入1,首先测试修改商品:


Python实现购物系统(示例讲解)

输入0,修改第一个商品价格为400:


Python实现购物系统(示例讲解)

退出后查看 commodit 文件看见商品价格已经修改


Python实现购物系统(示例讲解)

--------------------------------------------------

测试添加商品:


Python实现购物系统(示例讲解)

查看 commodit文件


Python实现购物系统(示例讲解)

测试买家入口:


Python实现购物系统(示例讲解)

有钱了那就先来一台Iphone


Python实现购物系统(示例讲解)

再来60包炉石卡包


Python实现购物系统(示例讲解)

按q退出结账!并且有一个salary文件记录余额


Python实现购物系统(示例讲解)

此时目录会多一个salary文件


Python实现购物系统(示例讲解)

点开就能看到余额已经被记录

Python实现购物系统(示例讲解)

感想:

做完这个购物车花了2天,其实也不是整天都在弄,毕竟还要上课、学习。这次主要是熟悉文件的操作和一些基础知识的回顾,写完后能跑出功能就很开心了.因为中途遇到很多困难,解决了一个又出一个问题,不过通过上网查找和询问还是解决了。写完后感觉很low,毕竟自己敲得太少还是要多加练习,这个程序挺适合入门或者学完文件操作的亲来练练手。对了,自己测试程序的时候还出现bug,不过影响不是特别大,只是不要多次修改价格就行,这个问题我也想过怎么解决,就是把列表清空,这样数据就不会读出2遍,但又发现第二次读取的数据不是更改后的数据,我就在想,列表有没有刷新,清空功能。这里先留下这个问题吧。功能已经都实现了,但写的真的很low,等以后再掌握了新姿势,回头来改改!包括前面做的登录还有三级菜单!如果有跟我一样初学的可以一起学习Alex老师的python课程,如果有大神看到,并且能耐心看完,请大神再多指点指点小弟!

好了,Life is short,use python!

以上这篇Python实现购物系统(示例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python备份文件以及mysql数据库的脚本代码
Jun 10 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python中验证码连通域分割的方法详解
Jun 04 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
python 图像平移和旋转的实例
Jan 10 Python
django如何自己创建一个中间件
Jul 24 Python
python:动态路由的Flask程序代码
Nov 22 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
浅谈Python协程asyncio
Jun 20 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
python模块之sys模块和序列化模块(实例讲解)
Sep 13 #Python
python模块之time模块(实例讲解)
Sep 13 #Python
python difflib模块示例讲解
Sep 13 #Python
Python网络编程 Python套接字编程
Sep 13 #Python
python和ruby,我选谁?
Sep 13 #Python
python实现简单点对点(p2p)聊天
Sep 13 #Python
django 常用orm操作详解
Sep 13 #Python
You might like
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
js实现点击烟花特效
2020/10/14 Javascript
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
使用python实现个性化词云的方法
2017/06/16 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
django用户登录和注销的实现方法
2018/07/16 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
PyQt5实现简单的计算器
2020/05/30 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
锐步英国官网:Reebok英国
2019/11/29 全球购物
化学教育专业自荐信
2014/07/04 职场文书
写给领导的感谢信
2015/01/22 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis