通过图书编号查询python_文字版图书管理-python练习

"""

2020-06-01 Python 打卡

1、根据下面运行流程图和提示,实现文字版图书管理功能。

提示:主体流程代码已实现如下,三个功能分别用函数来实现.

每本图书用一个字典来存储:book1 ={'id':编号,'name':书名,'location':位置}

所有的图书放在一个列表:books =[book1,book2,book3..............]

主要运用知识点:字典和列表的增删查相关操作, for循环 while循环

基本要求:

实现添加、删除、显示所有书籍的功能函数。

添加图书时:不用考虑书名、编号、位置是否和已有的书籍信息重复:

删除图书时:输入删除的书籍,找到名为书籍的所有数据,显示出来,然后用户根据编号选择删除。

扩展要求:添加图书时,书名和位置可以随便写,编号不能和已经添加过得数据重复

"""

books = [{'id':'1','name':'Python','addr':'a1'},{'id':'2','name':'Java','addr':'a2'}]

del_books = []

def print_menu():

print("="*40)

print(" 图书管理系统V6.1")

print("1.查询图书")

print("2.增加图书")

print("3.删除图书")

print("4.退出系统")

print("="*40)

#函数:添加图书

def add_new_name():

# new_id = input("请输入图书ID:")

while True:

new_id = input('请输入你要新增的图书ID:')

for test_id in books:

if new_id in test_id['id']:

print('图书馆有此ID的书籍')

break

else:

break

new_name = input("请输入图书名称:")

new_addr = input("请输入图书存放地址:")

#建立一个字典,把信息保存到字典的相对应位置

new_infor = {}

new_infor['name'] = new_name

new_infor['id'] = new_id

new_infor['addr'] = new_addr

#将字典添加到列表中

books.append(new_infor)

#打印

print(books)

#函数:删除

def del_name():

del_names = input("请输入要删除的图书姓名:")

for temp in books:

if del_names in temp['name']:

del_books.append(temp)

print(del_books)

del_id =input('请选择你要删除书籍的ID:')

for temp1 in books:

if del_id in temp1['id']:

books.remove(temp1)

print("ID为 %s 的书籍已删除"% del_id)

#函数:显示所有图书

def display_all_name():

for temp in books:

print("ID:%s\n图书名称:%s\n存放地址:%s\n"%(temp['id'],temp['name'],temp['addr']))

#主函数

def main():

print_menu()

while True:

num = int(input("请输入相对应的数字:"))

if num ==1:

display_all_name()

elif num == 2:

add_new_name()

elif num == 3:

del_name()

elif num == 4:

print('欢迎下次使用。。。')

break

else:

print("您输入的选项不正确!")

main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...

问题如题现在很多时候,即使是.net项目,我们用的数据库也未必时是 SQL Server了。但很多VS 自带的框架(如MVC 、WebAPI等框架)中的示例自带的仍然是默认Sql Server的,而且并不一定好改成别的数据库。这有时候就很苦恼。比如.net MVC框架中自带…

Dapr 知多少 | 分布式应用运行时

IntroDapr 官方团队已于最近(2021.2.17)正式发布Dapr v1.0,Dapr已正式生产可用,可以部署到自托管环境或 Kubernetes 集群。对于绝大多数开发者来说,想必对Dapr只是有所耳闻,而具体是什么(What&a…

使用.NET中的XML注释(一) -- XML注释标签讲解

一.摘要 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用。 C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档。 这篇文章将展示如何使用这些XML注释。 在项目开发中,很多人并不乐意写…

pythonpil库过滤图像contour_一秒钟带你走进P图世界-----(python)PIL库的使用

python-----PIL库的使用一、什么是PIL库1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素、色彩操作功能,还可以用于图像的归档和批量处理能力。2.PIL库主要有2个方面的功能:(1…

mysql tddl_TDDL思考总结

单机数据库分布式数据库TDDL原理与最佳实践1. 数据库的结构1.1. KV存储(id是K)1.2. B树与红黑树B树的特点是叶子节点是块状,一个叶子里面有多个数据,相邻数据是存在一起的,123,456起等,而磁盘也是按块的,B树…

c# winform中窗体切换后释放及防止重复生成

问题1:窗体切换后如何关闭,并释放资?c# winform中,2个窗体,form1和form2,互相切换的时候执行this.Hide(); Form2 form2 new Form2();form2.Show();此时你会发现当Form2显现时,Form1隐藏了,但当你关闭Form2时,其进程并…

2018程序员必备碎片化学习工具(年度精选)

2017马上就要过去了,2018来了。工作、生活节奏超快的今天,想要不断提升自我,碎片化阅读学习是你最佳的选择,如果你有一颗学习的心,那这些学习型的公众号,绝对会让你受益匪浅。小编为你精选了技术领域几个精…

mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串

题目链接: https://leetcode-cn.com/problems/unique-substrings-in-wraparound-string难度:中等通过率:35.6%题目描述:把字符串 s 看作是"abcdefghijklmnopqrstuvwxyz"的无限环绕字符串,所以 s 看起来是这样的&#xf…

ntopng mysql_网络流量监控工具与分析Ntop和Ntopng

Ntop工具NtopNtop是一种监控网络流量工具,用ntop显示网络的使用情况比其他一些网络管理软件更加直观、详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。Ntop工作方式1. 命令行界面2. web界面Ntop的功能1. 可以自动从网络中获取有用的信息2. 可以将获取的数据…

oracle express介绍

Oracle express 不是一种新型火车也不是一种新型的邮递服务。Oracle express是个多维的数据库和应用程序环境,这个应用程序环境是用来构建OLAP应用程序的。Express的组件(或者OLAP选项)是维(多维部分中的一部分)和变量…

一文读懂背包问题

转自:刘毅https://www.61mon.com/index.php/archives/188/问题展开有 N 件物品和一个容量为 V 的背包。第 i 件物品的体积是 Ci,其价值是 Wi。求解,在不超过背包容量情况下,将哪些物品装入背包可使价值总和最大。基本思路这是最基…

python核心数据类型_Python核心数据类型——列表

列表列表是任意对象的有序集合。也就是说,其元素可以是任何类型的对象。有序指的是,有严格的从左到右的顺序,这一点不同于字典,可以通过偏移读取,支持在原处修改,长度可变,是可变的类型。1. 常…

java io操作_Java 的IO操作(文件的读,写操作)

/* * FileEditor.java * * Created on 2006年9月13日, 下午2:22 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ /** *这是第一个类,没有利用缓冲技术 */ package fileeditor; import java.io.*;…

小米造车是智能手机进入红海后的突围之举

日前,媒体报道小米已确定造车,并视其为战略级决策。此前,雷静曾多次考虑造车,但未下定决心,而是选择了投资蔚来和小鹏,而且并未占多少股权,小米在两家公司上市时的持股份额均不到 5%&#xff0c…

linux服务之NIS

NIS服务RHEL4系统中NIS服务器软件的名称是ypserv,该软件包没有被系统默认安装,需要手动安装系统中的ypbind软件包是NIS客户端需要使用的软件包,yp-tools软件包中提供了对NIS服务器的查询和管理工具软件,这两个包是RHEL4系统中默认…

群论的创立:两个少年天才的接力

我们生活的世界中,美丽的对称无处不在。不过喜欢认死理的数学家,则硬要用他们独特的语言来定义对称。在数学上,对称与群相关联。随着数论、代数方程和几何等研究方向的发展,“群论”这个无比重要的数学领域被开创建立。而这一伟大…

python oracle连接池_【Python + Oracle】Python Oracle连接池—改进版

Oracle 连接池第四版。编程语言Python语言版本3.5.3实现功能oracle 连接池,解决频繁连接oracle数据库带来的连接资源耗费问题程序托管GitHub-OraclePool修改日期2020年8月3日version 4.0 改进说明:**[2020-04-21]** 修复连接用完后,不放回连接…

为什么有些大公司的技术弱爆了?

阅读本文大概需要5分钟。最近好几个大厂的读者不约而同跟我聊到公司采用的技术栈很落后的问题,一个读者还感叹:是不是大厂的领导都是混子?技术这么弱还不如之前呆的小公司。回复了几个读者朋友之后,这里也想跟大家分享下这个问题&…

普通程序员转型深度学习指南

AI领域人才奇缺,炙手可热的AI专业应届生年薪30万起步,AI毕业生基本不用找工作,都已经被企业早早预定。AI人才究竟有多紧缺?据腾讯研究院《全球人工智能人才白皮书》报告数据,目前全球AI领域人才仅约30万,全…

sm缩写代表什么意思_pe、PE在电气有代表什么意思,你发现没有,电气技术很有意思...

pe、pe、pe这些是什么意思解说1,听小课堂电小二跟你讲PE是Protecting Earthing的缩写,简体中文名称称之为“保护导体”,也就是我们通常所说的“地线”,我国规定PE线为黄绿双色线 。1.PE线的应用PE线是专门用于将电气装置外露导电部…