对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自带的一个运行代码,写入即可。

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

相关推荐
东莞市云毅网络有限公司6 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现
python·数据清洗·rag·企业知识库·文档解析
Sarvartha8 小时前
final 关键字
java·开发语言
数字融合8 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0118 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
程序员Sunday8 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
zhangzeyuaaa9 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
Marst Code9 小时前
上位机开发日记 · 第 2 篇 · 架构先行:六层分层与边界
python
李日华大战鸡红10 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
谢亮_vipxieliang10 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
思无邪6611 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能