python---练习

这篇博客探讨了两个Python编程问题:首先,创建一个房子类,包含户型、总面积和家具列表,并模拟添加不同家具(床、衣柜、餐桌)的过程,计算剩余面积。其次,实现了栈的基本操作,包括进栈、出栈和查看栈顶元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


需求:
1.房子有户型,总面积和家具名称列表
新房子没有任何的家具

2.家具有名字和占地面积,其中
床:占4平米
衣柜:占2平米
餐桌:占1.5平米
3.将以上三件家具添加到房子中
4.打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

class Furniture():
    # 初始化方法
    def __init__(self,name,area):
        self.name = name
        self.area = area
    def __str__(self):
        return '[%s] 占地%.2f' %(self.name,self.area)

class House():
        def __init__(self,house_type,area):
            self.house_type = house_type
            self.area = area
            #剩余面积
            self.free_area = area
            #家具名称列表
            self.item_list = []
        def __str__(self):
            return '户型:%s\n总面积:%.2f[剩余面积:%.2f]\n家具%s'\
                   % (self.house_type,self.area,self.free_area,self.item_list)
        def add_item(self,item):
            print ('要添加%s' % item)
            # 1.判断家具的面积
            if item.area > self.free_area:
                print ('%s 的面积太大了,无法添加' % item.name)
                # 如果不满足,下方的代码就不执行
                return
            # 2.将家具的名称添加到列表中
            self.item_list.append(item.name)
            # 3.计算剩余面积
            self.free_area -= item.area

# 创建家具
bed = Furniture('bed',4)
print (bed)
chest = Furniture('chest',2)
print (chest)
table = Furniture('table',2)
print (table)


#创建房子对象
my_home = House('两室一厅',100)
# 添加家具
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print (my_home)

在这里插入图片描述

模拟进栈.出栈

class Stack():

    def __init__(self):
        self.stack = []

    def push(self,value):#添加元素
        self.stack.append(value)
        return True

    def pop(self):#删除元素
        #先判断栈是否为空
        if self.stack:
            item = self.stack.pop()
            return item
        else:
            return False

    def top(self): #查看栈顶元素
        if self.stack:
            return self.stack[-1]
        else:
            return False

    def length(self):#查看栈长度
        return len(self.stack)

    def view(self):#查看栈元素
        return ','.join(self.stack)

s = Stack()
s.push('1')
s.push('2')
print(s.view())

(1)添加元素
在这里插入图片描述
(2)删除元素

s = Stack()
s.push('1')
s.push('2')
item = s.pop()
print(s.view())

在这里插入图片描述
(3)查看栈顶元素

s = Stack()
s.push('1')
s.push('2')
item = s.top()
print(item)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值