要求:写一个添加商品的程序,商品信息写入txt文件中,以二维字典形式比如:{‘小米’:{‘价格’:‘1999元’,‘数量’:10}}

    1、添加商品
#商品名称
#价格
#数量
2、查看商品
3、删除商品
#输入商品名称

需求分析:

  1.因为文件是直接用字典存储的,可以完成字符串和字典的强制转换

  2.新建一个字典,把文件中的商品信息读出来以字符串形式,再把字符串强转到字典

  3.所有的操作都针对字典操作,并保持字典和文件永远信息【一致】

def duqu():
shangpin_dic = {}#商品字典
shangpin_str= ''#商品字符串
shangpin_file = open('shangpin.txt', 'w+')#商品文件
for i in shangpin_file:#把文件中有的商品都写入字符串里
shangpin_str = shangpin_str + i
if shangpin_str != '':
shangpin_dic = eval(shangpin_str)#字符串转换成字典
return shangpin_dic
def start():
a=duqu()#把文件中的商品都拿到字典里,a现在就是所有商品的字典,之后的增、删、查都是直接操作字典
while 1 > 0:
xx = input('请输入你的选择:1、添加商品 2、查看商品 3、删除商品,4、退出\n')
if xx == '1':
add(a)#调用增加的方法,字典a在这里是实参,方法中的x是形参
elif xx == '2':
chakan(a)
elif xx == '3':
shanchu(a)
elif xx == '4':
print('再见')
break
else:
print('你输入的不对')
def chakan(x):
if len(x) > 0:#查看字典中的元素大于0,至少有一个商品
for k in x:
print("商品名称:"+k+",价格:"+x.get(k).get('price')+",库存:"+x.get(k).get('stock'))#输出字典中的商品
else:
print("暂无商品")#字典中的元素不大于零,没有商品
def shanchu(x):
rm = input("请输入你要删除的商品名称:\n")
if x.get(rm,'-') == '-':
print("您删除的商品不存在")
else:
x.pop(rm)
copyToTxt(x)
def add(x):#x为形参
add = input("请按以下格式输入你要增加的商品(商品名称_价格_数量,例如:小米_1999元_4)\n")
adds = add.split("_")#输入的商品分割后的list,例如:['小米','1999元',4]
if len(adds) != 3:#判断输入的格式,分割后不是三个元素的输入格式不正确
print("输入的格式不正确")
else:
x[adds[0]]={'price':adds[1],'stock':adds[2]}#在字典内增加输入的商品信息
copyToTxt(x)#写入文件 def copyToTxt(x):
f = open('shangpin.txt','w')
f.write(str(x))
f.close()
print("操作成功")
start()


python之商品操作小程序的更多相关文章

  1. Python flask构建微信小程序订餐系统

    第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...

  2. Python爬取微信小程序(Charles)

    Python爬取微信小程序(Charles) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90045204 一.前言 最近需要获取微信小 ...

  3. Python flask构建微信小程序订餐系统☝☝☝

    Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py  项目配置文件 Flask之flask-script模块使 ...

  4. Python flask构建微信小程序订餐系统✍✍✍

    Python flask构建微信小程序订餐系统  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题, ...

  5. python实现串口通讯小程序(GUI界面)

    python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...

  6. python爬取微信小程序(实战篇)

    python爬取微信小程序(实战篇) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90452656 展开 一.背景介绍 近期有需求需要抓 ...

  7. 利用Python代码编写计算器小程序

    import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root ...

  8. appium+python自动化56-微信小程序自动化(摩拜为例)

    前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...

  9. [作业] Python入门基础---购物车小程序

    1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...

随机推荐

  1. OpenStack IceHouse版cinder模块新添加功能

    感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/gaoxingnengjisua ...

  2. Jquery-easyui的默认图标的使用,以及如何添加自己想要的图标

    easyui的默认图标有以下这些: .icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background: ...

  3. ObjectARX学习笔记(三十二)----怎样设置AcDbMText对齐方式

    //_T("\\pxql;") 居左 //_T("\\pxqr;") 居右 //_T("\\pxqc;") 居中 //_T("\\ ...

  4. fastdfs配置文件解析

    1 tracker.conf 1.1 disabled=false 设置为false则该配置文件生效,否则屏蔽. 1.2 bind_addr= 程序监听地址,如果不设定则监听所有地址. 1.3 por ...

  5. 简说 call() 、apply() 、bind()

    对于这三个方法,我想一部分人还是比较陌生的. 所以今天来个简单的介绍~ 我们可以将call()和apply()看作是某个对象的方法,通过调用方法的形式来间接调用函数.call()和apply()的第一 ...

  6. A+B Problem && OJ推荐【持续更新】

    目录 List 前言 长郡 Position: code 1. 2. 持续更新,么么哒 List 前言 有没有觉得写这篇文章很奇怪,这个还是有原因的.①很多OJ都有着道题,所以发个博客②这可以介绍很多 ...

  7. 「网络流24题」「LuoguP4014」 分配问题

    Description 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为 cij.试设计一个将 n 件工作分配给 n 个人做的分配方案,使产生的总效益最大. Input 文 ...

  8. 「NOIP2012」「LuoguP1083」 借教室

    Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的 ...

  9. MDZX——张能传

    「你们到底要干什么?!」——8012年7月13日 张能于MDZX ———————————— 序章 ———————————— 话说天下大势,分久必合,合久必分. 他肩扛99米大砍刀,站在MDZX大门对面 ...

  10. 状态空间搜索好题UVA10603

    题目 分析:注意这里求的是最少流量, 二不是最少步数!!!所以我们用优先队列去维护一个最小流量,然后进行bfs即可,解释一下一个重要的数组ans[i],表示的是杯子中的水为i时的最小流量 #inclu ...