栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

用Python实现复数的四则运算

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用Python实现复数的四则运算

考完试第一篇文章耶!

 我尽力了,画了一个多小时

第一次画这种画,浅看一下,重要的是暑假快乐哇!

之前因为括号报错而在这里提出问答,实在是不该,太低级的错误了。这次就好好解释一下复数的四则运算怎么来。在这里用了类方法。

复数四则运算本身并不难,但由于复数  i^2= -1,需要进行实部虚部分别计算。所以这并不仅仅涉及普通数字的乘除运算。在这里要用到四则运算公式,如下:

加法法则: (a+bi)+ (c+di) = (a+c) + (b+d)i;

减法法则: (a+bi) - (c+di) = (a-c) + (b-d)i;

乘法法则: (a+bi)(c+di) = (ac - bd)+ (ad+bc)i

除法法则:

在运算中,a = self.x          c = other.x          b = self.y          d = other.y

接着只要按照公式,将原本的a b c d 在程序中改成self和other的形式

代码如下:

#  用类实现复数的运算

class Complex:  # 定义Complex类
    def __init__(self, x, y):
        self.x = x
        self.y = y

    # 定义方法 加 ,可用魔法方法__add__()
    def __add__(self, other):
        return Complex(self.x + other.x, self.y + other.y)  # 返回两个值的相加结果

    # 定义方法 减 ,可用魔法方法__sub__()
    def __sub__(self, other):
        return Complex(self.x - other.x, self.y - other.y)  # 返回两个值的相减结果

    # 定义方法 乘 ,可用魔法方法__mul__()
    def __mul__(self, other):
        return Complex(self.x * other.x - self.y * other.y, other.x * self.y + self.x * other.y)  # 返回两个值的复数相乘结果

    # 定义方法 除 ,可用魔法方法__truediv__()
    def __truediv__(self, other):
        return Complex((self.x * other.x + self.y * other.y) / (other.x * other.x + other.y * other.y),
                       (other.x * self.y - self.x * other.y) / (other.x * other.x + other.y * other.y))  # 返回两个值的复数相除结果

    def __str__(self):
        return "%d + %di" % (self.x, self.y)


c1 = Complex(2, 4)  # 2 + 4i,传入实部2,虚部4
c2 = Complex(3, 1)  # 3 + i,传入实部3,虚部1
c3 = c1 + c2  # 将相加结果赋值给c3 ,这里由于加号,自动触动上面的魔法方法add,下同
c4 = c1 - c2  # 将相减结果赋值给c4
c5 = c1 * c2  # 将相乘结果赋值给c5
c6 = c1 / c2  # 将相除结果赋值给c6
print(c3)
print(c4)
print(c5)
print(c6)

运行结果:

5 + 5i        #相加
-1 + 3i       #相减
2 + 14i      #相乘

1 + 1i        #相除

 魔法方法:

通俗讲就是,自己定义一种方法,实现你想要它完成的运算(如上add方法,实现复数相加运算),当你的对象用到了这种方法(c3 = c1 + c2),则自动调用add方法实现你希望它完成的相加运算(在这里是复数相加运算,而不只是普通的相加),这是一种非常强大的功能,标志就是前后会各有两个下划线__

欢迎交流!

放假快乐!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/981973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号