为复数定义 Python 类

2024 年 8 月 29 日 | 4 分钟阅读

如果我们定义一个复数的 Python 类,那么以下方法对于执行基本的复数运算是必须的。

  • add() 方法用于相加给定的两个复数
  • sub() 方法用于相减给定的两个复数
  • mul() 方法用于相乘给定的两个复数
  • div() 方法用于相除给定的两个复数
  • mod() 方法用于获取给定复数的模

结果的显示将使用 (a + bi) 的形式,即标准复数形式。我们将对作为类参数的两个复数应用这些运算。add()、sub()、multiply() 和 divide() 方法定义在类内部,以便我们可以使用运算符执行运算。此外,我们将使用 __str__() 函数来正确输出复数。

因此,例如,如果输入是 n1 = 1 + 4i n2 = 6 - 1i,那么上述运算的结果将是 (7.00 + 3.00i)、(-5.00 + 5.00i)、(10.00 + 23.00i)、(0.05 + 0.68i)、4.12、6.08。

为了计算结果,我们将必须遵循以下步骤:

  • 首先定义一个 Python 类,其中实部为 real,虚部为 img。
  • 然后,为了相加复数,定义一个 add() 方法。它将接受一个名为 com 的复数参数。该函数将返回一个 Complex 类的实例,其值为 (real + comp.re, img + comp.im)。
  • 同样,我们将定义 sub() 类来相减两个复数。它也将接受一个名为 comp 的参数。此方法还将返回一个 Complex 对象,其值为 (real - comp.re, img - comp.im)。
  • 下一个运算是相乘给定的两个复数。这个 mul() 类也将接受一个名为 comp 的参数,并返回一个 Complex 实例,执行 (real * comp.re - img * comp.im, real * comp.im + img * comp.re)。
  • 我们将为 div() 方法重复相同的步骤来相除。它将执行 m = (comp.re * comp.re + comp.im * comp.im),并返回对象 ((real * comp.re + img * comp.im)/m, (img * comp.re - real * comp.im)/m)。
  • 最后一个是 mod() 函数。此方法不接受任何参数。它将返回 (real * real + img * img) 的平方根。
  • 最后,如前所述,我们将使用 __str__() 方法。
  • 如果虚部为零,则返回实部(精确到小数点后两位)。
  • 如果实部为零,则返回虚部(精确到小数点后两位)。
  • 如果虚部小于 0,则返回 (real - img i) 的格式,两个数字都精确到小数点后两位。
  • 对于任何其他情况,将返回 (real + img i) 的格式,两个数字都精确到小数点后两位。

示例

现在让我们在 Python 中实现上述算法。下面是实现的代码片段。

代码

输出

7.00 + 1.00i
-3.00 + 5.00i
16.00 + 11.00i
0.14 + 0.66i
3.61
5.39