【Python】类与模块(定义一个三维向量类,实现对象之间的运算)

本文定义了一个三维向量类`Vector3`,实现了向量的加、减、乘、除运算以及向量长度的计算。通过类的方法重载,支持使用运算符+、-、*、/进行向量间和向量与标量的运算。同时,通过属性`length`获取向量的长度。示例展示了如何创建向量实例并进行各种运算。
摘要由CSDN通过智能技术生成

定义一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符*、/),以及向量长度的计算(要求使用属性实现)。

class Vector3:
    # 构造方法,初始化,定义向量坐标
    def __init__(self,x,y,z):
        self.a = x
        self.b = y
        self.c = z
          # 与一个向量相加,对应分量相加,返回新向量
    def __add__(self, m):
        x = self.a + m.a
        y = self.b + m.b
        z = self.c + m.c
        return Vector3(x,y,z)

    # 减去另一个向量,对应分量相减,返回新向量
    def __sub__(self, m):
        x = self.a - m.a
        y = self.b - m.b
        z = self.c - m.c
        return Vector3(x, y, z)

    # 向量与一个数字相乘,各分量乘以同一个数字,返回新向量
    def __mul__(self, n):
        x, y, z = self.a*n, self.b*n, self.c*n
        return Vector3(x,y,z)

    # 向量除以一个数字,各分量除以同一个数字,返回新向量
    def __
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”,退出系统。
可以定义一个名为 `Vector3D` 的来表示三维向量,并在其中实现向量法、法和向量与标量的乘法和除法运算。下面是一个可能的实现: ```python class Vector3D: def __init__(self, x, y, z): self.x = x self.y = y self.z = z def __add__(self, other): return Vector3D(self.x + other.x, self.y + other.y, self.z + other.z) def __sub__(self, other): return Vector3D(self.x - other.x, self.y - other.y, self.z - other.z) def __mul__(self, scalar): return Vector3D(self.x * scalar, self.y * scalar, self.z * scalar) def __truediv__(self, scalar): return Vector3D(self.x / scalar, self.y / scalar, self.z / scalar) ``` 在这个实现中,我们定义了一个 `__init__` 方法来初始化向量的三个分量 `x`、`y` 和 `z`。我们还定义了四个特殊方法: - `__add__` 方法实现向量运算,它将两个向量的对应分量相,并返回一个新的向量。 - `__sub__` 方法实现向量运算,它将两个向量的对应分量相,并返回一个新的向量。 - `__mul__` 方法实现向量与标量的乘法运算,它将向量的每个分量乘以一个标量,并返回一个新的向量。 - `__truediv__` 方法实现向量与标量的除法运算,它将向量的每个分量除以一个标量,并返回一个新的向量。 例如,我们可以创建两个三维向量 `v1` 和 `v2`,并使用上述运算符对它们进行乘除运算: ```python v1 = Vector3D(1, 2, 3) v2 = Vector3D(4, 5, 6) print(v1 + v2) # 输出 Vector3D(5, 7, 9) print(v1 - v2) # 输出 Vector3D(-3, -3, -3) print(v1 * 2) # 输出 Vector3D(2, 4, 6) print(v2 / 2) # 输出 Vector3D(2.0, 2.5, 3.0) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值