用于定义复数对象类的 Python 程序
pythonserver side programmingprogramming更新于 2025/12/23 8:12:17
假设我们想通过定义一个具有以下操作的复数类来执行复数任务 −
- add() 用于添加两个复数
- sub() 用于减去两个复数
- mul() 用于乘以两个复数
- div() 用于除以两个复数
- mod() 用于获取复数的模数
复数将以 (a + bi) 的形式显示。我们有两个复数,将对它们执行这些操作。在类中,我们重载 add()、sub()、mul() 和 div() 方法,以便我们可以使用运算符执行操作。我们还重载了 __str__() 方法,以便以正确的形式打印复数。
因此,如果输入为 c1 = 2+3i c2 = 5-2i,则输出将为 (7.00 + 1.00i)、(-3.00 + 5.00i)、(16.00 + 11.00i)、(0.14 + 0.66i)、3.61、5.39。
为了解决这个问题,我们将遵循以下步骤 −
- 定义实部为 re、虚部为 im 的复数类
- 定义一个函数 add()。这将需要 o
- 返回一个具有 (re + o.re, im + o.im) 的新 Complex 对象
- 定义一个函数 sub()。这将需要 o
- 返回一个新的复数对象,其值为 (re - o.re, im - o.im)
- 定义一个函数 mul() 。这将需要 o
- 返回一个新的复数对象,其值为 (re * o.re -im * o.im, re * o.im + im * o.re)
- 定义一个函数 div() 。这将需要 o
- m := o.re * o.re + o.im * o.im
- 返回一个新的复数对象,其值为 ((re * o.re + im * o.im)/m, (im * o.re - re * o.im)/m)
- 定义一个函数 mod() 。这将需要
- 返回 (re * re + im * im) 的平方根
- 重载 __str__()。
- 如果 im 与 0 相同,则
- 返回 re 最多两位小数
- 如果 re 与 0 相同,则
- 返回 im 最多两位小数
- 如果 im < 0,则
- 返回 re - im i,两者(re 和 im 最多两位小数)
- 否则,
- 返回 re + im i,两者(re 和 im 最多两位小数)
示例
让我们看看下面的实现以便更好地理解
from math import sqrt
class Complex:
def __init__(self, real, imag):
self.re = real
self.im = imag
def __add__(self, o):
return Complex(self.re+o.re, self.im+o.im)
def __sub__(self, o):
return Complex(self.re-o.re, self.im-o.im)
def __mul__(self, o):
return Complex(self.re*o.re-self.im*o.im, self.re * o.im + self.im * o.re)
def __truediv__(self, o):
m = o.re * o.re + o.im * o.im
return Complex((self.re * o.re + self.im * o.im)/m, (self.im * o.re - self.re * o.im)/m)
def __str__(self):
if self.im == 0:
return '%.2f' % self.re
if self.re == 0:
return '%.2fi' % self.im
if self.im < 0:
return '%.2f - %.2fi' % (self.re, -self.im)
else:
return '%.2f + %.2fi' % (self.re, self.im)
def mod(self):
return sqrt(self.re*self.re+self.im*self.im)
def solve(comp1, comp2):
print(comp1 + comp2)
print(comp1 - comp2)
print(comp1 * comp2)
print(comp1 / comp2)
print('%.2f' % comp1.mod())
print('%.2f' % comp2.mod())
comp1 = Complex(2, 3)
comp2 = Complex(5, -2)
solve(comp1, comp2)
输入
2, 3 5, -2
输出
7.00 + 1.00i -3.00 + 5.00i 16.00 + 11.00i 0.14 + 0.66i 3.61 5.39
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

