Python学习39天

 my_tools.py文件提供工具函数

"""
此文件编写工具函数,供程序员使用  my_tools
"""def read_confirm_select():"""让用户输入:Y/N,不区分大小写,将用户输入值转为小写返回,若输入其他数据则一直循环输入:return:"""# 让用户确认是否删除:Y表示继续删除,不区分大小写,若选择不是y/n,处于一直输入状态while 1:key = input("请输入你的选择(Y/N),请确认选择:")if key.lower() == 'y' or key.lower() == 'n':breakelse:print("选择错误,请重新输入")return key.lower()

 house_opera.py  提供房源的各种操作

"""
提供对房源的各种操作,house_opera
"""# 包含工具文件
from my_tools import *# 定义全局变量列表存放房源信息
Houses = [{"id": 1, "name": "amy", "phone": "000", "address": "经开", "rent": "800", "state": "未出租"}]
# 定义全局变量,存放房源ID
Id_Center = 1def main_menu():"""显示主菜单让用户选择:return:"""print()print("房屋出租系统主菜单".center(60, "="))print("\t\t\t1 新 增 房 源")print("\t\t\t2 查 找 房 源")print("\t\t\t3 删 除 房 源 信 息")print("\t\t\t4 修 改 房 源 信 息")print("\t\t\t5 房 源 列 表")print("\t\t\t6 退       出")def find_by_id(find_id):"""根据输入的房屋返回对应的房屋信息(字典),若没有则返回None:param find_id::return:"""# 遍历房源信息列表for house in Houses:if house["id"] == find_id:return house# 若没有return 则默认返回Nonereturn Nonedef list_house():"""显示房源信息函数,当用户输入5时显示:return:"""print("房源信息".center(60, "="))# 打印表头信息print("编号\t\t房主\t\t电话\t\t地址\t\t月租\t\t状态(已出租/未出租)")# 遍历Houses这个列表取出来的信息就是一个字典包含了一个房源的所有信息for house in Houses:# 取出来的字典的值进行遍历输出for value in house.values():# 遍历一个字典的所有值,不换行print(value, end="\t\t")# 一个房源信息遍历完后换行print()print("房源信息显示完毕".center(60, "="))def add_house():"""增加房源信息函数:return:"""print("添加房源信息".center(60, "="))name = input("姓名:")phone = input("电话:")address = input("地址:")rent = input("租金:")state = input("状态:")# 使用全局变量自动给房源添加编号global Id_CenterId_Center += 1# 创建房源信息对应的字典,同步增加到全局变量Houses列表中house = {"id": Id_Center, "name": name, "phone": phone, "address": address, "rent": rent, "state": state}Houses.append(house)print("添加房源成功".center(60, "="))def exit_sys():"""判断用户的二次确认--Y:确认执行操作,返回True;N:取消操作返回None;Y/N 不区分大小写:return:"""# 接受判断函数choice = read_confirm_select()if choice == 'y':return Truedef del_house():"""根据用户输入id,删除房源信息:return:"""print("删除房源信息".center(60, "="))del_id = int(input("请输入要删除的房源编号(-1退出):"))# 当用户输入-1时退出操作if del_id == -1:print("放弃删除房源信息".center(60, "="))# 返回空值,退出函数return# 判断用户输入的是Y还是Nif exit_sys():  # 若是True则执行后续操作# 根据输入的id,去House中查找是否存在此房源信息house = find_by_id(del_id)# 存在房源信息则删除if house:# 执行删除操作Houses.remove(house)print("房源信息删除成功".center(60, "="))else:print("房源信息不存在,删除失败".center(60, "="))else:print("放弃删除房源信息".center(60, "="))def check_house():"""完成根据id查找房源信息功能:return:"""print("查找房源信息".center(60, "="))# 接受用户输入的idcheck = int(input("请输入要查找的房源id:"))check_id = find_by_id(check)if check_id:print("编号\t\t房主\t\t电话\t\t地址\t\t月租\t\t状态(已出租/未出租)")for value in check_id.values():print(value, end="\t\t")else:print(f"查找房源的id: {check}不存在")def update_house():"""输入房源id修改房源信息:return:"""print("修改房屋信息".center(60, "="))update_id = int(input("请选择修改房源信息编号(-1表示退出):"))# 若用户输入-1则退出操作if update_id == -1:print("操作取消".center(60, "="))return# 根据用户输入的id查找房源信息house = find_by_id(update_id)# 如果房源id不存在进行提示if not house:print(f"输入的房源id {update_id}不存在")return# 接收用户的信息name = input(f"姓名({house['name']}): ")# 若用户输入值则修改if name:house['name'] = namephone = input(f"电话({house['phone']}): ")if phone:house['phone'] = phoneaddress = input(f"地址({house['address']}): ")if address:house['name'] = addressrent = input(f"租金({house['rent']}): ")if rent:house['rent'] = rentstate = input(f"状态({house['state']}): ")if state:house['state'] = stateprint("修改房源信息成功".center(60, "="))

main.py  主函数,程序执行位置


# 导入模块 house_opera,提供房源信息具体操作的文件
from house_opera import *def main():"""主函数程序执行位置   main:return:"""# 无线循环显示菜单while True:# 调用显示菜单函数main_menu()# 让用户选择并做出相应的处理key = int(input("请输入你的选择(1-6):"))if key in range(1, 7):if key == 1:add_house()elif key == 2:check_house()elif key == 3:del_house()elif key == 4:update_house()elif key == 5:list_house()# 输入6表示退出elif key == 6:if exit_sys():print(f"你输入了{key},退出程序,欢迎下次使用")# 退出循环breakelse:print("当前操作取消")else:print("输入信息错误请重新输入")main()

显示房源信息,并增加房源信息

输入id查找房源信息

删除房源信息

修改房屋信息

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

LCA - Lowest Common Ancestor

LCA - Lowest Common Ancestor https://www.luogu.com.cn/problem/SP14932 题目描述 A tree is an undirected graph in which any two vertices are connected by exactly one simple path. In other words, any connected graph without cycles is a tree. - Wikipedia T…

unity打包web,发送post请求,获取地址栏参数,解决TypeError:s.replaceAll is not a function

发送post请求 public string url "http://XXXXXXXXX";// 请求数据public string postData "{\"user_id\": 1}";// Start is called before the first frame updatevoid Start(){// Post();StartCoroutine(PostRequestCoroutine(url, postData…

恒创科技:如何区分网站的域名主机名

如何区分网站的域名主机名?它们都是网址机制的一部分,当你在地址栏输入它们,就能访问互联网上想去的地方。你可曾思考过主机名和域名的区别呢? 简单来说,域名就像网址,而主机名用于标识网络中的设备。不过,这只是表面…

【技巧学习】ArcGIS如何计算水库库容量?

ArcGIS如何计算水库库容量? 一、数据获取 DEM数据来源于地理空间数据云,该网站是由中科院计算机网络信息中心于2008年创立的地学大数据平台。 二、填洼 将DEM数据中凹陷的区域填充至与倾斜点同样高度,这里的【Z限制】说的是设定一个特定的值&#x…

机器学习——感知机模型

文章目录 前言1.感知机模型介绍1.1基本概念1.2数学表达1.3几何解释1.4优缺点 2.二分类应用2.1应用介绍2.2准备数据集2.2.1环境检查2.2.2数据集介绍2.2.3获取数据2.2.4划分数据集 2.3可视化训练集2.4训练过程2.4.1首轮梯度下降2.4.2多轮梯度下降 2.5可视化分类结果2.6在验证集验…

11.20[JAVAEXP3]重定向细究【DEBUG】

设置了根域名访问为testServlet,让他重定向到首页为test.jsp,事实上也都触发了,但是最后显示的为什么不是test.jsp生成页面,依然还是index.jsp生成的页面?? 重定向是通过Dispatcher进行的,而不是sendRedir…

YOLOv11模型改进-注意力-引入卷积和注意力融合模块(CAFM) 提升小目标和遮挡检测

本篇文章将介绍一个新的改进机制——卷积和注意力融合模块CAFM,并阐述如何将其应用于YOLOv11中,显著提升模型性能。首先,CAFM是为了融合卷积神经网络(CNNs)和 Transformer 的优势,同时对全局和局部特征进行…

APM装机教程(五):测绘无人船

文章目录 前言一、元生惯导RTK使用二、元厚HXF260测深仪使用三、云卓H2pro遥控器四、海康威视摄像头 前言 船体:超维USV-M1000 飞控:pix6c mini 测深仪:元厚HXF160 RTK:元生惯导RTK 遥控器:云卓H12pro 摄像头&#xf…

基于MinIO打造高可靠分布式“本地”文件系统

MinIO是一款高性能的对象存储服务,而S3协议是由亚马逊Web服务(AWS)制定的一种标准协议,用于云存储服务之间的数据交换。MinIO与S3协议的关系在于,MinIO实现了S3协议的接口,这意味着用户可以使用与AWS S3相同…

Luma 视频生成 API 对接说明

Luma 视频生成 API 对接说明 随着 AI 的应用变广,各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多,从最初的写作,到医疗教育,再到现在的视频。 Luma 是一个专业高质量的视频生成平…

基础算法——搜索与图论

搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法(朴素版)2.2、Dijkstra算法(堆优化版)2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…

Online Monocular Lane Mapping

IROS 2023 港科大 文章链接:http://arxiv.org/abs/2307.11653 github:GitHub - HKUST-Aerial-Robotics/MonoLaneMapping: Online Monocular Lane Mapping Using Catmull-Rom Spline (IROS 2023) 动机 摆脱高精地图,使用车端的传感器来实现车端…

29.两数相除 python

两数相除 题目题目描述示例 1:示例 2:提示:题目链接 题解解题思路python实现代码解释提交结果 题目 题目描述 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断&#x…

MicroBlaze软核开发(二):GPIO

实现功能:使用 MicroBlaze软核,配置GPIO用拨码开关控制LED灯 Vivado版本:2018.3 目录 引言 vivado部分: 一、配置GPIO 二、生成HDL文件编译 SDK部分: 一、导出硬件启动SDK 二、新建应用程序工程 三、编写程序代…

sdk项目的git 标记新tag的版本号

在 Git 中,tag 是用来标记某个特定的提交点(通常是发布版本或重要的里程碑)的工具。通过 git tag,你可以为版本号创建标记,帮助团队跟踪不同版本的代码。 如果你想创建一个新的版本号标签,可以按照以下步骤…

40分钟学 Go 语言高并发:服务注册与发现

服务注册与发现 一、系统架构设计 让我们先通过流程图了解服务注册与发现的整体架构: 二、核心组件实现 1. 服务注册中心 package discoveryimport ("context""sync""time" )// ServiceInstance 服务实例 type ServiceInstance…

〔 MySQL 〕索引

目录 1. 没有索引,可能会有什么问题 2. 认识磁盘 MySQL与存储 先来研究一下磁盘: 在看看磁盘中一个盘片​编辑 扇区 定位扇区​编辑 结论 磁盘随机访问(Random Access)与连续访问(Sequential Access) 3. MySQL 与磁盘交互基本单位 4. 建立共识…

微信小程序里的小游戏研发需要什么技术栈

研发小程序里的小游戏通常需要以下技术栈: 前端技术 HTML5 / CSS3:用于构建游戏的界面布局和样式。JavaScript:作为核心编程语言,实现游戏的逻辑和交互。小程序开发框架:如微信小程序的开发框架,了解其 API…

php 生产者-消费者实现

一、项目背景 mes报工需求,原项目接口接收产线上位抛来的数据,处理无误后存储在本地,最后抛给工厂接口。 但是有时候工厂数据响应太慢,也导致mes响应给上位变慢,拖慢了mes系统。 现要求,将原接口中抛给工厂…

SpringBoot 解决跨域问题

SpringBoot 解决跨域问题 遇到前端跨域访问问题,类似于这样的: 在Springboot项目里加上这个配置文件CorsConfig.java,重启之后即可实现跨域访问,前端无需再配置跨域。 1、添加跨域工具包CorsConfig 2、写跨域代码 import org.sp…