python练习题(3)

1、设计并实现一个数组类,要求能够把包含数字的列表、元组或range对象转换为数组,能够使用包含整数的列表作为下标同时返回多个位置上的元素值。

class CustomeArray():
    arr = []#定义arr列表用于存储输入数据
    def __init__(self, paramArr):
        for i in paramArr:
            self.arr.append(i)

    def __getitem__(self, i):
        if type(i) == list:
            newArr = []
            for subi in i:
                newArr.append(self.arr[subi])
            return newArr
        elif type(i) == int:
            return self.arr[i]

if __name__ == "__main__":#既能保证当前的.py文件直接运行,也能保证其可以作为模块被其他.py文件导入
    cs = CustomeArray([1,2,3,5])#定义cs对象,实现调用
    print(cs[[0,2]])

2.编程实现如下功能: (1)定义一个抽象类Shape,在抽象类 Shape中定义求面积 getArea()和周长 getPerimeter()的抽象方法。 (2)分别定义继承抽象类Shape的3个子类即Triangle、Rectangle、和Circle,在这3个子类中重写 Shape中的方法getArea()和 getPerimeter( )。 (3)创建类Triangle、 Rectangle、 Circle的对象,对3个类中的方法进行调用测试。

from math import pi

class Shape(object):#这里object为以后继承做准备
    def __init__(self):
        pass
    #system auto call function to input r that get Area

    def getPerimeter(self):
        pass

    def getArea(self):
        pass



	#分别定义继承抽象类Shape的3个子类即Triangle、Rectangle、和Circle,在这3个子类中重写 Shape中的方法getArea()和 getPerimeter( )。'''

```python
class Triangle(Shape):
    def __int__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c

    def getArea(self,a,b,c):
        #(1/16)(a+b+c)(a+b-c)(a+c-b)(b+c-a)
        return ((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a)/16)**0.5#三角形求面积就是如此

    def getPerimeter(self,a,b,c):
        return (a+b+c)

print('=============三角形求面积和周长==============')
c1=Triangle()
l =c1.getArea(3,5,4)
print(l)
s=c1.getPerimeter(3,5,4)
print(s)

class Circle(Shape):
    def __int__(self, r):
            self.r = r
            self.r = r

    def getArea(self,r):
            # (1/16)(a+b+c)(a+b-c)(a+c-b)(b+c-a)
            return pi*r**2  # 三角形求面积就是如此

    def getPerimeter(self,r):
            return 2*pi*r

print('=============圆形求面积和周长==============')
c3 = Circle()
l = c3.getArea(6)
print(l)
s = c3.getPerimeter(6)
print(s)

class Rectangle(Shape):
    def __int__(self, a, b):
            self.a = a
            self.b = b

    def getArea(self, a, b):
            # (1/16)(a+b+c)(a+b-c)(a+c-b)(b+c-a)
            return 2*(a+b)  # 三角形求面积就是如此

    def getPerimeter(self, a, b):
            return 2*(a + b )

print('=============矩形求面积和周长==============')
c2 = Rectangle()
l = c2.getArea(3, 5)
print(l)
s = c2.getPerimeter(3, 5)
print(s)

1、 一个三维向量,并定义相应的特殊方法实现两个该对象之间的加、减运算(要求支持运算符+、-),实现对象与标量的乘、除运算(要求支持运算符*、/),以及向量长度的计算(要求使用属性实现)。 2、 编程实现如下功能: (1)定义一个抽象Shape,在抽象 Shape中定义求面积 getArea()和周长 getPerimeter()的抽象方法。 (2)分别定义继承抽象Shape的3个子即Triangle、Rectangle、和Circle,在这3个子中重写 Shape中的方法getArea()和 getPerimeter( )。 (3)创建Triangle、 Rectangle、 Circle的对象,对3个中的方法进行调用测试。 3、使用第六章(王雷春版)介绍的知识设计一个“书籍出租管理系统”,该系统包括以下功能。 (1) 菜单项“1”:显示书籍(包括书籍名称、价格和借出状态)。 (2) 菜单项“2”:增加书籍(包括书籍名称和价格)。 (3) 菜单项“3”:借出书籍(包括借出书籍名称和借出天数)。 (4) 菜单项“4”:归还书籍(包括归还书籍名称和应付的租书费)。 (5) 菜单项“5”:统计书籍(包括借出书籍册数、未借出书籍册数和总册数)。 (6) 菜单项“-1”:退出系统。 体会利用面向对象编程的思想。 4、设计一个“超市进销存管理系统”,要求如下: (1)系统包括7种操作,分别是:1查询所有商品;2添加商品;3修改商品;4.删除商品;5卖出端口;6.汇总;-1.退出系统。 (2)选择操作序号“1”,显示所有商品 (3)选择操作序号“2”,添加新的商品(包括商品名称、数量和进货价格)。 (4)选择操作序号“3”,修改商品 (5)选择操作序号“4”,删除商品 (6)选择操作序号“5”,卖出商品(包括商品名称、数量和售出价格)。 (7)选择操作序号“6”,汇总当天卖出商品,包括每种销售商品名称、数量、进货总价、销售总价等。 (8)选择操作序号“-1”,退出系统。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr顺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值