假设每栋房子可用长方形类来表示,其中包含房屋的楼栋号、层数、长、宽等属性成员,现请你编写一个程序来统计某个小区多栋房子(其中至少有3栋房子是相同户型和层数)的总占地面积和总建筑面积。要求:1) 不同户型房屋的属性通过生成对象时输入。2) 相同户型的房屋对象,可以练习使用拷贝构造函数,但楼栋号需要修改
class house():
def __init__(self, code, layer, long, width):
self.code = code
self.layer = layer
self.long = long
self.width = width
def main():
houselist={
}
while True:
print("""请选择功能:\n1,添加新房子\n2,添加已存在房子\n3,统计面积\n4,退出""")
a=input("请输入:")
if a=='1':
_=input("请输入房屋的楼栋号、层数、长、宽[用逗号隔开]").split(',')
if len(_)!=4:
print("输入错误")
else:
houselist[_[0]]=house(*_)
print("添加成功")
elif a=='2':
print("已存在房屋",houselist.keys())
_ = input("请输入存在房屋号和新房屋好号[用逗号隔开]").split(',')
if len(_)==2:
import copy
houselist[_[1]] = copy.copy(houselist[_[0]])
houselist[_[1]].code = _[1]
print("添加成功")
else:
print("输入错误")
elif a=='3':
sum=0
for i in houselist.values():
sum+=eval(i.long)*eval(i.width)
print(f"s={sum}")
elif a=="4":
break
else:
print("输入错误")
if __name__ == '__main__':
main()