对py作业的一个复盘

这段时间去学了会py,写了一个小作业。今日复盘总结一下。

这个作业题目是这样的:

对于我这种小白来说,初看还是有点懵的。分几步来看在结合ai的辅助,还是勉强可以作出来的。

1.要搞懂怎么去创建每本图书的基本属性

这点其实是很重要的。首先你的创建好后后面的功能才有实现的可能。这里采用的就是类的写法

这里主要就是定义了书的一些属性,让你在下面去定义一本书时就可以在其中去取属性就行了。

下面我想的就是去初始化一些书,那既然我们要初始化一些书的话,我们是不是就需要去有个空间去存取。那我们就需要在外面去定义一个列表。因为列表是按下标来存取的,所以我们就按照下标去分别赋值就行。你只需应用类的属性,在后面给每个属性分别赋值即可。

接下来就是分别封装函数来赋予其功能了。

2.添加图书

这里若你想要用户有较好的体验,就需要用一个循环,避免用户去输入输入一些无法识别的东西然后直接返回菜单了。这里就要考虑的就是用户会不会正确的去输入四个参数,或者是添加的图书会不会和已有的图书编号重复了,或者就是在输入最后书的数量时用户会不会给你输入一个字母啥的,造成失败。这些都应该是我们应该考虑的。那再这里我学会了当你要分割四个参数时你要这样写:

复制代码
part = user.split(",")

这样就将4个参数分开分别放在part这个新建列表中了。后面再分别用变量去读取即可。后面通过循环列表来观察是否其中有编号重复。想循环列表也很简单:

复制代码
for 变量名 in 列表名:

这就可以循环整个列表,直到读取不到空间。后面的判断数量是不是数字的话,就要用到try.....except:.... except后面跟的是不同的异常类型。再后面当你要将书存入列表时,这时候就要去循环列表下标,将数据存入。具体代码如下:

3.查询书

这里其实就有一点要特别记住的就是:模糊查找

复制代码
变量1 in 变量2 

一般来说我们都是==来去让两个相等时去打印出书。改成in后只要用户输入的变量1存在变量2中,就会显示出来。要主要这个得在字符串中才行。代码附上:

4.删除图书

py的列表中当你赋予某一个为None时,剩下的就会自动补齐上来了!

5.保存文件

这里采用的时json文件存法。这是真用ai才懂还有这种好方法。

有几大好处:

1.数据可以永远保存

2.格式简单,让人一眼就可以看懂,像这样:

复制代码
[
{
      列表[0]的属性
}
{
      列表[1]的属性
}
]

3.步骤简单,分两步就搞定,将列表存入文件,将文件读回列表。

4.方便做增删

5.可跨文件语言

由于json文件不认识类对象,所以我们要转为字典存入。我本来存在al中的就是类对象,json看不懂,这时我们就需要新建一个列表,将其转为字典在存入即可。json和正常文件的存入是一样的。但要加入一个核心的函数即:

复制代码
json.dump()

这里面的第一个参数放的是你要存入这个json文件的数据变量名。这样就好了。

6.把保存的数据取出

这里有一步关键的就是json.load将json文件中的数据取出来然后转成py能读懂的方式。

7.运行程序

这里就要使用到一个

复制代码
if __name__ == "__main__":

这个是py自带的一个运行代码,写入即可。

通过这个还是学会了很多知识,还是很有用的。

相关推荐
BU摆烂会噶2 小时前
【LangGraph 持久化】让 AI Agent 拥有“记忆”
数据库·人工智能·python·langchain
Rust研习社2 小时前
使用 Tonic 构建高性能异步 gRPC 服务
开发语言·网络·后端·http·rust
captain3762 小时前
JDBC(Java Data Base Connectivity)
java·开发语言
南境十里·墨染春水2 小时前
C++笔记 STL——vector
开发语言·c++·笔记
zhangchaoxies2 小时前
c++怎么在Linux下获取文件被最后一次访问的精确纳秒时间【进阶】
jvm·数据库·python
拾-光2 小时前
LTX-Video 2.3 实战:用图片生成视频,消费级显卡也能跑的开源 I2V 模型(GPT Image 2)
java·人工智能·python·深度学习·算法·机器学习·音视频
m0_747854522 小时前
c++怎么在Linux下获取文件被最后一次访问的精确纳秒时间【进阶】
jvm·数据库·python
AVA洋2 小时前
初识Coze(扣子)工作流,ai视频自动化制作
人工智能·python·大模型
2301_816660212 小时前
如何用HTML函数工具检测当前设备性能_内置诊断操作【操作】
jvm·数据库·python