首页 文章资讯内容详情

为复数对象定义类的 Python 程序

2026-06-03 2 花语

假设我们想通过定义一个复数类来完成复数任务,以下操作-

add()将两个复数相加

sub()减去两个复数

mul()将两个复数相乘

div()将两个复数相除

mod()得到复数的模数

复数将以(a+bi)的形式显示。我们有两个复数,将对它们执行这些操作。在类中,我们重载add(),sub(),mul()和div()方法,使我们可以使用运营商执行的操作。我们还重载__str__()了以正确形式打印复数的方法。

所以,如果输入像c1=2+3ic2=5-2i,那么输出将是(7.00+1.00i),(-3.00+5.00i),(16.00+11.00i),(0.14+0.66i))、3.61、5.39。

示例

让我们看下面的实现来更好地理解

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): ifself.im== 0: return %.2f % self.re ifself.re== 0: return %.2fi % self.im ifself.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