python
复制代码
"""
提供对房源的各种操作,house_opera
"""
# 包含工具文件
from my_tools import *
# 定义全局变量列表存放房源信息
Houses = [{"id": 1, "name": "amy", "phone": "000", "address": "经开", "rent": "800", "state": "未出租"}]
# 定义全局变量,存放房源ID
Id_Center = 1
def 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 则默认返回None
return None
def 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_Center
Id_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 True
def del_house():
"""
根据用户输入id,删除房源信息
:return:
"""
print("删除房源信息".center(60, "="))
del_id = int(input("请输入要删除的房源编号(-1退出):"))
# 当用户输入-1时退出操作
if del_id == -1:
print("放弃删除房源信息".center(60, "="))
# 返回空值,退出函数
return
# 判断用户输入的是Y还是N
if 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, "="))
# 接受用户输入的id
check = 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'] = name
phone = input(f"电话({house['phone']}): ")
if phone:
house['phone'] = phone
address = input(f"地址({house['address']}): ")
if address:
house['name'] = address
rent = input(f"租金({house['rent']}): ")
if rent:
house['rent'] = rent
state = input(f"状态({house['state']}): ")
if state:
house['state'] = state
print("修改房源信息成功".center(60, "="))