json模块补充说明、作业讲解、购物车项目

json模块补充说明

import json

d = {'name': 'jason老师', 'pwd': 123}
res = json.dumps(d)  # 针对中文会自动转码  我们在查看的时候不方便
print(res)
可以用
# res = json.dumps(d, ensure_ascii=False)
# print(res)

作业讲解

1.编写一个统计指定文件类型的脚本工具
 输入指定类型的文件后缀
     eg:.txt
 并给出一个具体路径 之后统计该类型文件在该文件下的个数
  ps:简单实现即可 无需优化
import os

# 1.获取目录路径
dir_path = input('请输入目录路径>>>:').strip()  # aaa
# 2.获取指定后缀名
ends_name = input('请输入想要统计的文件后缀名>>>:').strip()  # .txt
# 3.列举目录路径下所有内容的名称
path_list = os.listdir(dir_path)  # ['a.txt', 'a1', 'a2', 'b.txt', 'c.txt', 'd.py', 'e.py']
# 4.循环获取每一个内容名称 判断是否以用户指定的文件后缀名结尾
file_num = 0
for name in path_list:
    if name.endswith(ends_name):
        file_num += 1
print(f'在{dir_path}目录第一层级 以后缀名{ends_name}结尾的文件个数有:{file_num}')
"""
1.如果出现了目录的嵌套 如何统计
    请说出大致思路  课下不用编写代码
2.只给一个目录的路径 直接统计该目录下第一层所有类型的内容数量
    .txt:3 .py:2 目录:2 课下尝试编写代码
"""     
2.针对json实操 尝试单文件多用户(一行一个)是否可实现>>>:哪个更方便
    不要求完成 单纯体会两种思路的难易
3.编程小练习
 有一个目录文件下面有一堆文本文件
     eg:
      db目录
            J老师视频合集
            R老师视频合集
            C老师视频合集
            B老师视频合集
 文件内容自定义即可 要求循环打印出db目录下所有的文件名称让用户选择
  用户选择哪个文件就自动打开该文件并展示内容
  涉及到文件路径全部使用代码自动生成 不准直接拷贝当前计算机固定路径
import os

# 1.获取执行文件所在的路径
base_dir = os.path.dirname(__file__)  # D:/pythonProject03/day20
# 2.拼接存储文本文件的目录路径
data_dir = os.path.join(base_dir, 'data')  # D:/pythonProject03/day20/data
# 3.列举目录下所有内容名称
file_name_list = os.listdir(data_dir)  # ['B老师视频合集.txt', 'J老师视频合集.txt', 'K老师视频合集.txt', 'R老师视频合集.txt', 'Z老师视频合集.txt']
while True:  # 添加循环让项目更加的合理
    # 4.循环打印文件名供用户选择查看
    for num, file_name in enumerate(file_name_list, start=1):  # 枚举 主要用于给数据添加编号便于查看和选取
        print(num, file_name)
    # 5.等待for循环展示完毕之后 获取用户想要查看的编号
    choice_num = input('请输入您想要查看的文件编号(q)>>>:').strip()  # 获取到的用户输入是字符串 而列表索引取值需要用数字
    if choice_num == 'q':
        print('拜拜 下次再见 等你哟~')
        break
    # 6.判断用户输入是否是纯数字
    if not choice_num.isdigit():
        print('你眼瞎啊 编号只能是数字 你妹的!')
        continue
    choice_num = int(choice_num)  # 100
    # 7.判断数字是否在列表的索引范围内
    if choice_num not in range(1, len(file_name_list) + 1):  # range(1, 6)
        print('我看你是真瞎 编号不在范围内 看清楚好好输')
        continue
    # 8.索引取值获取用户想要查看的文件名称
    target_name = file_name_list[choice_num - 1]  # 'B老师视频合集.txt'
    # 9.拼接文件的绝对路径(因为站在执行文件的角度找不到文本文件)
    target_file_path = os.path.join(data_dir, target_name)
    # 10.利用文件操作打开文件并读取内容
    with open(target_file_path, 'r', encoding='utf8') as f:
        for line in f:
            print(line, end='')
    print()
    print('-------------------本次观看完了哟!----------------------')


4.周末大作业(尝试编写)
 # 项目功能
    1.用户注册
     2.用户登录
     3.添加购物车
     4.结算购物车
 # 项目说明
    用户数据采用json格式存储到文件目录db下 一个用户一个单独的文件
     数据格式 {"name":"jason","pwd":123}
         # ps:文件名可以直接用用户名便于校验
     用户注册时给每个用户添加两个默认的键值对(账户余额 购物车)
      {"balance":15000,"shop_car":{}}
     添加购物车功能 商品列表可以自定义或者采用下列格式
            good_list = [
                    ['挂壁面',3]
                    ['印度飞饼', 22]
                 ['极品木瓜', 666],
                 ['土耳其土豆', 999],
                 ['伊拉克拌面', 1000],
                 ['董卓戏张飞公仔', 2000],
                 ['仿真玩偶', 10000]
            ]
      用户可以反复添加商品,在购物车中记录数量
        {'极品木瓜':[个数,单价]}
     结算购物车
      获取用户购物车中所有的商品计算总价并结算即可

  针对添加购物车和结算只有登录的用户才可以执行

购物车项目

1.单个py文件采用函数版本先写 后期如果有需要再拆分成目录规范
2.先搭建项目框架
	空函数 功能字典 while循环匹配
3.注册功能
4.登录功能
5.添加购物车和结算购物车都必须要求用户登录才可以执行
	校验用户是否登录装饰器
6.添加购物车
	一定要注意购物车字典里面是否已经有历史数据 
7.结算购物车
posted @ 2022-11-26 19:48  wwwxxx123  阅读(26)  评论(0编辑  收藏  举报