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(‘输入非数字!‘)

原文地址:https://www.cnblogs.com/shengqi/p/11680142.html

时间: 2024-08-29 14:07:03

python字典操作+文件操作+函数的相关文章

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

Python自动化开发-day01-Python开发基础2-元组、字典、文件操作

学习内容: 1. 元组操作 2. 字典操作 3. 文件操作 4. 深浅copy 1. 元组操作: 元组和列表非常相似,只不过元组不能在原处修改(它是不可变的),并且通常写成圆括号中的一系列项. # 元组定义(存取方式同列表), 元组只有2个方法:index 和 count names = ("wills","oscar","tom","jerry") 2. 字典操作: # 字典定义 employees = { "s0

Python之路-文件操作(py)

文件操作的基本步骤: 1.打开文件:f=open('filename'),with open('filename') as f 2.操作文件:增,删,改,查 3.关闭文件:f.close 打开文件 python中打开文件的函数为open('filename',mode='r',encode='utf-8'),open函数默认返回文件的句柄,我们可以根据句柄来对文件进行增,删,改,查的操作.将句柄赋给我们定义的变量,假设我们定义变量为f,则f=open('filename',mode='r',en

Python学习之--文件操作

Python中对文件操作可以用内置的open()函数 读文件 f=open('/home/test/test.txt','r') # 读模式打开文件 f.read() # 读取文件内容 除了正常的读取文件内容,一个常用的操作是判断文件内容是否为空,如下: if len(f.read())==0: # 如果文件内容为空 xxxx 判断一个文件或者路径是否存在,如下(这里需要在代码中导入os module: import os): file='/home/test/test.txt' dir='/h

python之路----文件操作

python文件操作 文件操作的基本流程: 1.打开文件f_read = open("filename",mode = 'r',encoding="utf-8") 打开一个文件并且将文件句柄赋值给变量f_read,模式可以有多种,如: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可

python-数据类型,元祖,列表,字典,文件操作篇

python----数据类型,元祖,列表,字典,文件操作篇1.布尔类型:Ture False 非0即真 非空即真 空(None a=''空字符串) 条件判断返回的都是True或者False2.字符串: 注:字符串的所有操作,不改变原字符串值 常用的操作方法 .count() .find() #回不存在的元素,返回-1 .join() .encode() .decode()#bytes类型才有的(bytes:二进制类型) .endswith('.txt')#字符串是否以xx结尾 startswit

python解析xml文件操作的例子

python解析xml文件操作实例,操作XML文件的常见技巧. xml文件内容: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </first> <last>

python基础11 文件操作 ,字符编码

主要内容 文件操作 文件操作 打开文件的模式 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建. "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模

PHP操作文件常用函数

[获取文件信息的函数] basename($path[,扩展名]) 返回文件路径中去掉路径后的文件名称."/root/a.txt"输出a.txt;带上.txt输出a. dirname($path); 查看目录名称."/root/a.txt" 输出 /root. pathinfo($path) 返回数组."/root/a.txt" 输出array(dirname=>root,basename=>a.txt,extension=>t

python语法基础-文件操作-长期维护

###############    python-简单的文件操作  ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 # 2,读写文件,默认是从文件的开始读取数据,也就是读取文件的所有内容 # 3,关闭文件,文件必须要关闭,否则会造成系统资源消耗,而且户影响后续会文件的访问 # 常用方法: # open # write # read # close # readline,这个什么时候用, # 文件打开方式: # 语