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查找房源信息
删除房源信息
修改房屋信息