python字典操作+文件操作+函数
师从百测besttest
今天老牛教了些函数调用的知识,布置了个作业如下: # 1、写一个商品管理的小程序
# 2、商品存在文件里面
# 1、添加商品
# 输入产品名称、颜色、价格
# 要校验商品是否存在,价格是否合法
# 输入是否为空
# 2、修改商品信息
# 输入产品名称、颜色、价格
# 要校验商品是否存在,价格是否合法
# 输入是否为空
# 3、查看商品信息
# 输入商品名称
# 输入all就展示全部商品
# 输入的是其他的商品名称,
# 4、删除商品
# 输入商品名称 如果需要运行下列代码,请先在代码同级目录创建一个shangpin.txt文件,并写入一些内容,目前目录为空还没有做判断,如果为空会报错,内容例如:
{
"iphone": {
"color": "高亮黑",
"price": "99.99"
},
"电视": {
"color": "红色",
"price": "99.99"
},
"冰箱": {
"color": "白色",
"price": "99.99"
}
}
代码如下:
import json #读取商品信息
def goods():
with open('shangpin.txt', encoding='utf-8') as f:
str = json.load(f)
return str #判断商品是否存在
def is_good(name):
if name in goods():
return False
else:
return True #判断价格的正确性
def is_price(price):
price = price.strip()
if price and price.count('.') == 1:
left,right = price.split('.')
if left.isdigit() and right.isdigit() and int(right) < 100 and float(price) > 0:
return True
else:
return False
elif price.isdigit() and int(price) > 0:
return True
else:
return False #添加或修改商品信息
def updata_add(name,color,price):
all_goods = goods()
all_goods[name] = {'color': color, 'price': price}
with open('shangpin.txt', 'w', encoding='utf-8') as f:
json.dump(all_goods, f, ensure_ascii=False, indent=4) #添加商品
def inset_goods():
name = (input('请输入商品名称:')).strip()
color = (input('请输入颜色:')).strip()
price = (input('请输入价格:')).strip()
if name and color and price and is_good(name) and is_price(price):
updata_add(name,color,price)
print('添加成功!')
elif name and is_good(name) is False:
print('商品已存在!')
else:
print('输入错误!') #修改商品
def updata_goods():
name = (input('请输入商品名称:')).strip()
color = (input('请输入颜色:')).strip()
price = (input('请输入价格:')).strip()
if name and color and price and is_good(name) is False and is_price(price):
updata_add(name,color,price)
print('修改成功!')
elif name and is_good(name):
print('商品不存在!')
else:
print('输入错误') #查看商品信息
def see_goods():
goods_name = input('输入具体商品名称,要查看所有输入all:')
if goods_name.strip() != '':
if goods_name == 'all':
print(goods())
elif goods_name in goods():
print(goods_name,goods()[goods_name])
else:
print('没有这个商品!')
else:
print('输入错误!') #删除商品
def del_goods():
goods_name = (input('请输入商品名称:')).strip()
if goods_name.strip() != '':
if goods_name in goods():
all_goods = goods()
del all_goods[goods_name]
with open('shangpin.txt', 'w', encoding='utf-8') as f:
json.dump(all_goods, f, ensure_ascii=False, indent=4)
print('删除成功!')
else:
print('没有这个商品!')
else:
print('输入错误!') while True:
check = (input('请输入数字,1表示查询、2表示新增、3表示修改、4表示删除:')).strip()
if check.isdigit():
check = int(check)
if check == 1:
see_goods()
elif check == 2:
inset_goods()
print(goods())
elif check ==3:
updata_goods()
print(goods())
elif check == 4:
del_goods()
print(goods())
else:
print('输入错误请重新输入!')
else:
print('输入非数字!')
python字典操作+文件操作+函数的更多相关文章
- Python复习笔记-字典和文件操作
抽时间回顾2年前自己做过的python工具,突然感觉不像自己写的,看来好久没用过python的字典和文件操作了,查询资料和网页,整理如下: 一.字典 键值对的集合(map) 字典是以大括号“{}”包围 ...
- Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- python【第二篇】列表、元组、字典及文件操作
本节内容 列表 元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作:列表有序.可变.元素 ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python的高级文件操作(shutil模块)
Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
- Python之路-文件操作(py3)
文件操作的基本步骤: 1.打开文件:f=open('filename'),with open('filename') as f 2.操作文件:增,删,改,查 3.关闭文件:f.close 打开文件 p ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
随机推荐
- jquery 去除 css 的 background-image 样式
首先我使用了这个: $('#**').css('background-image', null); 没有效果...... 然后我用了这个: $('#staffName').css('backgroun ...
- SparkStreaming使用checkpoint存在的问题及解决方案
sparkstreaming关于偏移量的管理 在 Direct DStream初始化的时候,需要指定一个包含每个topic的每个分区的offset用于让Direct DStream从指定位置读取数据. ...
- Educational Codeforces Round 73 (Rated for Div. 2) C. Perfect Team
链接: https://codeforces.com/contest/1221/problem/C 题意: You may have already known that a standard ICP ...
- 11 SaltApi
1.APIS https://docs.saltstack.com/en/latest/topics/api.html 1.python client api 必须运行在master节点上 2. 一般 ...
- 无法安装 Composer 怎么办?
详细方法参见 http://pkg.phpcomposer.com/ 下载 composer.phar ,放置到项目中 在同目录中执行命令行 echo @php "%~dp0composer ...
- 如何打开Mac OSX 终端的颜色
如何打开Mac OSX 终端的颜色 听语音 | 浏览:8453 | 更新:2015-12-15 16:48 1 2 3 4 5 6 7 分步阅读 Mac 终端默认颜色很单一,文件夹和文件无法区分,可以 ...
- 清北学堂-贪心-bfs
输入样例: 3 5 10 5 4 10 8 1 10 1 3 1 4 1 5 1 3 2 1 2 5 4 3 4 3 4 5 5 1 1 4 4 6 1 9 4 7 2 9 5 10 5 2 8 8 ...
- codeforces163D
Large Refrigerator CodeForces - 163D 给定一个长方体的体积V,求出这个长方体的最小表面积. 输入 第一行有一个整数t (1 ≤ t ≤ 500) — 测试数据的组数 ...
- JS高级_变量提升和函数提升
先执行变量提升,后执行函数提升 function a(){} var a console.log(typeof a)//function
- R语言:载入rjava(xlsx)包报错
先安装JRE,在电脑中添加环境变量: 电脑-右键-属性-高级系统设置-环境变量-用户变量下新建:变量名:JAVA-HOME,变量值:JRE安装路径(到jre1.8***这个文件夹就行了) 系统变量下找 ...