用Python实现复数的四则运算

简介: 用Python实现复数的四则运算

推荐一个刷题网站,体验过一段时间了,真的建议去试试。


对于Python很少有基础题库,牛客针对基础专项出题,目前还出炉了数据分析和机器学习 。


不仅是Python,还有Java、C语言C++、数据库SQL、算法、HTML/CSS等很多语言的练习题库,功能很强大,点击这里开始练题


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


复数四则运算本身并不难,但由于复数  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方法实现你希望它完成的相加运算(在这里是复数相加运算,而不只是普通的相加),这是一种非常强大的功能,标志就是前后会各有两个下划线__


欢迎交流!


相关文章
|
Python
Python多分支实现四则运算器
Python多分支实现四则运算器
444 0
Python多分支实现四则运算器
|
Python
python 数据类型和四则运算
不懂的时候就google. 按照下面要求,在ide中运行: >>> 2+5 7 >>> 5-2 3 >>> 10/2 5 >>> 5*2 10 >>> 10/5+1 3 >>> 2*3-4 2 继续要在ide中运算一下: >>> 4+2 6 >>> 4.
1391 0
|
11天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
5天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
10天前
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
|
3天前
|
数据处理 Python
从零到英雄:Python编程的奇幻旅程###
想象你正站在数字世界的门槛上,手中握着一把名为“Python”的魔法钥匙。别小看这把钥匙,它能开启无限可能的大门,引领你穿梭于现实与虚拟之间,创造属于自己的奇迹。本文将带你踏上一场从零基础到编程英雄的奇妙之旅,通过生动有趣的比喻和实际案例,让你领略Python编程的魅力,激发内心深处对技术的渴望与热爱。 ###
|
6天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第24天】本文将带你进入Python的世界,从最基础的语法开始,逐步深入到实际的项目应用。我们将一起探索Python的强大功能和灵活性,无论你是编程新手还是有经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的奇妙之旅吧!
|
8天前
|
设计模式 监控 数据库连接
Python编程中的设计模式之美:提升代码质量与可维护性####
【10月更文挑战第21天】 一段简短而富有启发性的开头,引出文章的核心价值所在。 在编程的世界里,设计模式如同建筑师手中的蓝图,为软件的设计和实现提供了一套经过验证的解决方案。本文将深入浅出地探讨Python编程中几种常见的设计模式,通过实例展示它们如何帮助我们构建更加灵活、可扩展且易于维护的代码。 ####
|
5天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
10 1