当前位置: 首页 > news >正文

测试开发进阶系列课程

测试开发系列课程

    • 1.完善程序思维--------案列:图书管理系统的创建
      • **(一)图书管理系统的创建**

1.完善程序思维--------案列:图书管理系统的创建

(一)图书管理系统的创建

1.在main中写入主函数,主功能
![在这里插入图片描述](https://img-blog.csdnimg.cn/e0c08545dd324bc49bf031e2c99e73e3.png

'''
思考步骤:1.要做个图书管理系统先考虑他的界面进入,导航栏目条线写一个welcome方法2.在写一个主函数运行的选项 main方法3.要运行就要用户输入,在运行前线进行输入写一个get_choose_numeber方法
'''#1
def welcome():print("*************************欢迎进入图书管理系统********************")print("1.显示所有图书\n2.添加图书\n3.删除图书\n4.查找图书\n5.退出")print("****************************************************************")#3
def  get_choose_number():"获得用户输入的菜单编号"choose_number = input("请输入菜单编号:")# input输入返回的是一个str;所以要转化为num需要做一个强制转化#做个判断;如果编号不是数字  或者 不是 1,2,3,4,5 返回 -1#判断是否要转换,isdigit会自动判断返回的是不是数字,不是返回-1;是的话返回输入的数字,并用int把str类型转化成num类型if not choose_number.isdigit() or choose_number not in ["1","2","3","4","5"]:return -1return int(choose_number)#2
def main():while True:# 写了了2的判断这就可以开始调用了welcome()number = get_choose_number()if number == -1:print("输入有误,请重新输入")continueif number ==1:passelif number ==2:passelif number ==3:passelif number == 4:passelse:breakif __name__ == '__main__':main()

在这里插入图片描述

在这里插入图片描述

思考逻辑
在这里插入图片描述

2.在book中谢如要达成的book目的

''''
init:
初始化方法(即__init__方法)是Python中的一种特殊方法,它用于在创建类的新实例时初始化该实例的属性。在类中定义初始化方法后,当我们创建该类的新实例时,Python会自动调用该方法,并将实例本身(即self)作为第一个参数传递给它。这使我们可以使用self来访问实例的属性,并将它们初始化为特定的值。例如,如果我们有一个表示图书的类,我们可以使用初始化方法来初始化该类实例的属性,例如书的名称,作者,出版日期等。初始化方法的好处是可以在创建对象时为其属性提供默认值,也可以让我们传递参数来初始化对象的属性。这样,在创建对象时就不需要手动为每个属性设置初始值了。这样可以让代码更加简洁和易于维护。因此,初始化方法是一种非常有用的方法,它使我们能够轻松地初始化类的实例,并在实例化时提供自定义属性值。boject:
在Python中,所有的类都是从object类继承而来的。object是Python中的一个基类,它定义了所有类共有的一些基本属性和方法。在Python3中,即使没有显式继承object,Python也会默认地将所有类看作是从object类继承而来的。object类的作用包括以下几个方面:提供默认的构造函数:在Python中,如果一个类没有显式定义__init__方法,Python会自动提供一个默认的构造函数,它来自object类。提供一些基本的魔术方法:例如__new__、del、__repr__等。这些魔术方法是Python中的一些特殊方法,它们可以在类的实例化、删除、打印等过程中自动调用,从而方便我们进行一些特殊的操作。提供一些基本的方法和属性:例如__class__、doc、hash、__str__等。这些方法和属性都是从object类继承而来的,它们可以用于获取类的信息、实例的信息等。因此,object类是Python中非常重要的一个基类,它为所有类提供了一些基本的属性、方法和行为,使得我们可以更加方便地进行类的定义和使用。'''# 1.写一个书的类,包含3个属性,编号,名字,位置
class Book(object):def __init__(self, num, name, position):self.num = numself.name = nameself.position = position'''这是一个Python类中的特殊方法__str__,它用于将对象转换为字符串形式。当我们使用print函数打印一个对象时,Python会自动调用该对象的__str__方法来将对象转换为字符串,然后打印出来。在这个特定的方法中,self代表当前实例对象,可以使用self来访问实例的属性。在这个方法中,它返回了一个包含实例属性的字符串,其中{book.num}、{book.name}和{book.position}是字符串格式化表达式,用于获取该实例的num、name和position属性的值,并将它们放入字符串中。例如,如果我们有一个Book类的实例对象book,当我们使用print(book)时,Python会自动调用该对象的__str__方法,并返回一个包含num、name和position属性值的字符串。因此,我们可以使用以下代码来打印该对象的属性值:'''def __str__(self):return f"{self.num}\t{self.name}\t{self.position}\t"class BookManage(object):book_list = []def show_book(self):"""显示所有图书"""for book in self.book_list:print()def add_book(self,book:Book):   #book:Book   book是变量,Book是类型; python3的新语法,在某个变量中添加新的类型,这个类型是Book;  作用看代码更明白 这是个Book类型"""原来书单里面是空的book_lis,需要在里面添加一些书"""self.book_list.append(book)#其他关于  变量 : 类型 的列子# def f1(s:str):
#     return s.lower()
#
# def f2(s):
#     return s.
# 本页运行,如果你的脚本名字倍主函数运行赋值,可以在本页脚本运行
if __name__ == '__main__':book = Book(1, "边城浪子", "1号架2层")print(book)

在book中书写的代码
在这里插入图片描述
优化后的book代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)再去main里面写添加图书和显示图书的调用逻辑

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行查看
(1)最开始输入1的时候还是显示全部的编号,因为还没有 开始增加图书
在这里插入图片描述

(2)输入2进行增加图书

在这里插入图片描述
在这里插入图片描述

'''
思考步骤:1.要做个图书管理系统先考虑他的界面进入,导航栏目条线写一个welcome方法2.在写一个主函数运行的选项 main方法3.要运行就要用户输入,在运行前线进行输入写一个get_choose_numeber方法'''# 1
from dev_01day.book import Book, BookManagedef welcome():print("*************************欢迎进入图书管理系统********************")print("1.显示所有图书\n2.添加图书\n3.删除图书\n4.查找图书\n5.退出")print("****************************************************************")# 3
def get_choose_number():"获得用户输入的菜单编号"choose_number = input("请输入菜单编号:")  # input输入返回的是一个str;所以要转化为num需要做一个强制转化# 做个判断;如果编号不是数字  或者 不是 1,2,3,4,5 返回 -1# 判断是否要转换,isdigit会自动判断返回的是不是数字,不是返回-1;是的话返回输入的数字,并用int把str类型转化成num类型if not choose_number.isdigit() or choose_number not in ["1", "2", "3", "4", "5"]:return -1return int(choose_number)# 2
def main():bm = BookManage()  # 创建一个用来管理图书的对象叫做bmwhile True:# 写了了2的判断这就可以开始调用了welcome()number = get_choose_number()if number == -1:print("输入有误,请重新输入")continueif number == 1:bm.show_book()elif number == 2:num = input("请输入书的编号:")book_name = input("请输入书名:")book_position = input("请输入位置:")# 创建一个对象---具体的书book = Book(num, book_name, book_position)#  print(book)bm.add_book(book)elif number == 3:passelif number == 4:passelse:breakif __name__ == '__main__':main()

这里犯了一次错误在BookMange中的show_book没有在print打印具体的书print(book)导致,在main中运行了2后再运行1不会显示书名。

相关文章:

测试开发进阶系列课程

测试开发系列课程1.完善程序思维--------案列:图书管理系统的创建**(一)图书管理系统的创建**1.完善程序思维--------案列:图书管理系统的创建 (一)图书管理系统的创建 1.在main中写入主函数,…...

Qt源码阅读(三) 对象树管理

对象树管理 个人经验总结,如有错误或遗漏,欢迎各位大佬指正 😃 文章目录对象树管理设置父对象的作用设置父对象(setParent)完整源码片段分析对象的删除夹带私货时间设置父对象的作用 众所周知,Qt中,有为对象设置父对象…...

【Python入门第四十二天】Python丨NumPy 数组裁切

裁切数组 python 中裁切的意思是将元素从一个给定的索引带到另一个给定的索引。 我们像这样传递切片而不是索引:[start:end]。 我们还可以定义步长,如下所示:[start:end:step]。 如果我们不传递 start&…...

Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法

本文介绍在Anaconda环境中,下载并配置Python中机器学习、深度学习常用的新版tensorflow库的方法。 在之前的两篇文章基于Python TensorFlow Estimator的深度学习回归与分类代码——DNNRegressor(https://blog.csdn.net/zhebushibiaoshifu/article/detail…...

加载模型时出现 OSError: Unable to load weights from pytorch checkpoint file 报错的解决

加载模型时出现 OSError: Unable to load weights from pytorch checkpoint file 报错的解决报错信息原因查明网传解决措施好消息我的解决措施报错信息 查了下,在网上还是个比较常见的报错 一般为加载某模型时突然报错 原因查明 一般为下载某个 XXX_model.bin 的…...

sessionStorage , localStorage 和cookie的区别

一.sessionStorage(临时存储)sessionStorage是HTML5中新增的Web Storage API之一,用于在浏览器中存储键值对数据,与localStorage类似,但是sessionStorage存储的数据在会话结束时会被清除。可以通过以下方式使用sessionStorage:存储…...

C# 实例详解委托之Func、Action、delegate

委托是.NET编程的精髓之一,在日常编程中经常用到,在C#中实现委托主要有Func、Action、delegate三种方式,这个文章主要就这三种委托的用法通过实例展开讲解。 【Func】:Func是带返回值的委托: 原型函数如下(以下展示的…...

如何选电脑

1、CPU(中央处理器) 怎么看CPU型号:CPU:系列-代数等级核心显卡型号电压后缀 例如CPU:i7-10750H : 1、系列:Intel的酷睿i3、i5、i7、i9这四个系列的CPU,数字越大就代表越高端。 2、代数:代表…...

SpringBoot项目创建

如果使用spring的源地址创建项目失败,就使用 阿里云的springBoot项目创建地址:https://start.aliyun.com/ 1.new 一个新的项目: 2.选择合适的版本java的JDK和maven项目 3.选择spring web依赖 4.直接finish 5. 删除无用的包,然后…...

神经衰弱该如何判断?确诊为神经衰弱,日常要做好这7大护理!

神经衰弱是由于长时间处于紧张或者压力的情况下导致精神出现兴奋或者疲乏现象而伴随着一系列症状。如情绪烦恼、容易激怒、睡眠障碍、肌肉出现紧张性疼痛等,生活中有很多人在自己的不到休息或者遇到强大打击时就会嘲笑自己患上神经衰弱。甚至一些会盲目采取措施&…...

Linux之进程替换

进程替换1.什么是进程替换2.替换函数2.1 execl函数2.2 execv函数2.3 execlp函数2.4 execvp函数2.5 在自己的C程序上如何运行其他语言的程序?2.6 execle 函数2.7 小结3.一个简易的shell1.什么是进程替换 fork()之后,父子各自执行父进程代码的一部分&…...

关于清除浮动

浮动最早是用来做图文排版,为了让块级元素同行显示,而html中块元素是有自己的排列规则,一般独占一行。所以有了浮动元素,一旦元素浮动了就会脱离文档流,产生问题。怎么去清除浮动:(1&#xff09…...

Uber H3 index 地图索引思考

H3 是 uber 设计的六边形空间索引,go 语言操作包是 h3-go,可以通过经纬度获取所在的 h3 六边形边界,每个经纬度对应的六边形都是确定的,每个六边形唯一对应了一个 h3index。在业务开发中,我们可以通过 h3index 来对地理…...

多线程的几种状态

Java-多线程的几种状态🔎1.NEW( 系统中线程还未创建,只是有个Thread对象)🔎2.RUNNABLE( (就绪状态. 又可以分成正在工作中和即将开始工作)🔎3.TERMINATED(系统中的线程已经执行完了,Thread对象还在)🔎4.TIMED_WAITING(指定时间等待…...

【算法题】1574. 删除最短的子数组使剩余数组有序

题目: 给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。 一个子数组指的是原数组中连续的一个子序列。 请你返回满足题目要求的最短子数组的长度。 示例 1: …...

理解对数——金融问题中的自然对数(以e为底的对数)

第3章 金融问题(Financial Matters)——金融问题中的自然对数If thou lend moneyto any ofMy people. ...thou shalt not beto him as a creditor;neither shall yelay upon him interest.(如果你借钱给我的任何人。 ……你不应该是他的债权人;也不可向他加息。)——…...

vue2进阶学习之路

HTML、CSS和JavaScript基础 在学习Vue2之前,需要掌握HTML、CSS和JavaScript的基础知识。包括HTML的标签、CSS的布局和样式、JavaScript的变量类型、条件语句、循环语句等。 Vue2的基础知识 掌握Vue2的基本概念和语法,包括Vue2实例、数据绑定、指令、组件…...

决策树ID3算法

1. 决策树ID3算法的信息论基础 机器学习算法其实很古老,作为一个码农经常会不停的敲if, else if, else,其实就已经在用到决策树的思想了。只是你有没有想过,有这么多条件,用哪个条件特征先做if,哪个条件特征后做if比较优呢&#…...

C++模板基础(一)

函数模板(一) ● 使用 template 关键字引入模板: template void fun(T) {…} – 函数模板的声明与定义 – typename 关键字可以替换为 class ,含义相同 – 函数模板中包含了两对参数:函数形参 / 实参;模板形…...

生产者消费者模型线程池(纯代码)

目录 生产者消费者模型 条件变量&&互斥锁(阻塞队列) makefile Task.hpp BlockQueue.hpp BlockQueueTest.cc 信号量&&互斥锁(环形队列) makefile RingQueue.hpp RingQueueTest.cc 线程池(封…...

K8s 应用的网络可观测性: Cilium VS DeepFlow

随着分布式服务架构的流行,特别是微服务等设计理念在现代应用普及开来,应用中的服务变得越来越分散,因此服务之间的通信变得越来越依赖网络,很有必要来谈谈实现微服务可观测性中越来越重要的一环——云原生网络的可观测。K8s 是微服务设计理念能落地的最重要的承载体,本文…...

3.29面试题

文章目录内存内存管理执行过程要点面试题内存 内存管理 由JVM管理 堆:new出来的对象(包括成员变量、数组元素、方法的地址)栈:局部变量(包括方法的参数)方法区:.class字节码文件(…...

操作系统漏洞发现

操作系统漏洞发现前言一、操作系统漏洞发现1.1 namp2. Goby3. Nessus二,进行渗透测试2.1 使用工具进行渗透1. metasploit2.2 EXP2.3 复现文章三,操作系统漏洞修复前言 不管是对于App来说,还是web站点来说,操作系统是必须的&#x…...

Linux gdb调试底层原理

TOC 前言 linux下gdb调试程序操作过程参考本人文章:gdb调试操作; 这里不再叙述; 本文主要内容是介绍GDB本地调试的底层调试原理,我们来看一下GDB是通过什么机制来控制被调试程序的执行顺序; 总结部分是断点调试的底层原理,可以直接跳转过去先看看大概…...

LC-1647. 字符频次唯一的最小删除次数(哈希+计数)

1647. 字符频次唯一的最小删除次数 难度中等56 如果字符串 s 中 不存在 两个不同字符 频次 相同的情况,就称 s 是 优质字符串 。 给你一个字符串 s,返回使 s 成为 优质字符串 需要删除的 最小 字符数。 字符串中字符的 频次 是该字符在字符串中的出现…...

HTTP状态码

100: 接受,正在继续处理 200: 请求成功,并返回数据 201: 请求已创建 202: 请求已接受 203: 请求成为,但未授权 204: 请求成功,没有内容 205: 请求成功,重置内容 206: 请求成功,返回部分内容 301: 永久性重定…...

【Linux】初见“which命令”,“find命令”以及linux执行命令优先级

文章目录1.which命令1.1 whereis命令1.2 locate命令1.3 搜索文件命令总结2.find命令2.1 find之exec用法2.2 管道符之xargs用法3 Linux常用命令4.命令执行优先级1.which命令 查找命令文件存放目录 搜索范围由环境变量PATH决定(echo $PATH) which命令格式&#xff1…...

update case when 多字段,多条件, mysql中case when用法

文章目录 前言 sql示例 普通写法: update case when写法 update case when 多字段写法 case when语法 case when 的坑 1、不符合case when条件但是字段被更新为null了 解决方法一:添加where条件 解决方法二:添加else 原样输出 2、同一条数据符…...

mysql隐式转换 “undefined“字符串匹配到mysql int类型0值字段

描述:mysql 用字符串搜索 能搜到int类型查询结果 mysql int类型条件用字符串查询 table: CREATE TABLE all_participate_records (id bigint unsigned NOT NULL AUTO_INCREMENT,created_at datetime(3) DEFAULT NULL,updated_at datetime(3) DEFAULT NULL,deleted…...

Redis八股文

1.Redis是什么? Redis 是一个基于 C 语言开发的开源数据库(BSD 许可),与传统数据库不同的是 Redis 的数据是存在内存中的(内存数据库),读写速度非常快,被广泛应用于缓存方向。并且&#xff0c…...

天津 网站备案/优化seo

var request new XMLHttpRequest(); request.open(GET, url, true); request.onreadystatechange function() { if (request.readyState 4) { if (request.status 200) { var data request.responseText; } } } request.send();...

wordpress使用数据库/业务网站制作

最近在阿里云服务器上搭建了git仓库,并实现了代码自动同步到了web项目目录下,但是美中不足。如果吧本地的项目可以同时推送到github 上就更好了,为了实现这个效果百度了一下,借鉴其他人的博客搞成功了,在这里记录一下 …...

免费空间做自己的网站/网页怎么搜索关键词

虽然你将进程放在后台执行,但是并没有跟启动该进程的终端detach,因此,父进程shell终端关闭,子进程也将被关闭。解决方案2,有python库可以将自身进程daemon化,而且挺多的。比如,python-daemon。使…...

外贸发货做网站怎么写/建个网站需要多少钱?

Android图片轮播组件(多模式) android-image-indicator转载于:https://www.cnblogs.com/zhujiabin/p/4776139.html...

成品网站nike源码免费/池州网络推广

1.界面简单; 不能保存图片; 不能快捷连接网页。 2.不能实时获取消费情况; 手动添加对人服务不方便; 界面不美观。 3.没有实现正则表达式判断用户输入; 没有连接数据库; 界面不完善。 4.手动输入博客地址&am…...

建设部监理协会网站/在线推广企业网站的方法

Ajax的优势: 1,宗旨:按需请求数据 减轻服务器的带宽, 2,无刷新请求,提高web性能,例如表单验证: 1,jQuery的ajax操作 jQuery封装ajax操作,通常有这几种方式&a…...