浅析Python中复数的创建与运算方法

在 Python 编程中,复数(Complex Number)是一种容易被忽略但却十分重要的数据类型,尤其在科学计算、信号处理、工程数学等领域有着广泛应用。不同于实数,复数由实部和虚部组成,格式为a + bj(其中a是实部,b是虚部,j表示虚数单位,等价于数学中的i)。本文将从零开始,详细讲解 Python 中复数的创建方式与核心运算方法,帮助初学者彻底掌握这一知识点。

一、复数的基本概念

在数学中,复数的标准形式为 ,其中:
  • 为实部(Real Part),是普通的实数;
  • 为虚部(Imaginary Part),也是实数;
  • 为虚数单位,满足
在 Python 中,虚数单位使用j(小写)表示(注意不能用i),这是因为在电子工程领域,j更常用作虚数单位,Python 的设计也兼容了这一行业习惯。

二、Python 中复数的创建方式

Python 提供了多种创建复数的方法,从直接字面量定义到内置函数调用,满足不同场景的需求。

2.1 直接字面量创建

这是最直观、最常用的方式,直接按照实部+虚部j的格式定义,注意虚部的j必须存在(即使虚部为 1,也不能省略)。
python
运行
# 示例1:基础创建
z1 = 3 + 4j  # 实部3,虚部4
z2 = 5 - 2j  # 实部5,虚部-2
z3 = 0 + 7j  # 纯虚数,实部为0
z4 = 8 + 0j  # 实部为8,虚部为0(等价于实数8,但类型仍是复数)
z5 = -2 - 3j # 实部和虚部均为负数

# 查看类型和值
print(f"z1的值:{z1},类型:{type(z1)}")  # 输出:z1的值:(3+4j),类型:<class 'complex'>
print(f"z3的值:{z3},类型:{type(z3)}")  # 输出:z3的值:7j,类型:<class 'complex'>
注意事项
  • 虚部的j必须小写,大写J虽然也能识别,但不符合 Python 规范;
  • 若虚部为 1 或 – 1,不能简写为j-j,必须写1j-1j(如1+1j,而非1+j)。

2.2 使用 complex () 函数创建

Python 内置的complex()函数是创建复数的通用方法,语法为:
python
运行
complex(real, imag)
  • real:必填,复数的实部(可以是整数、浮点数);
  • imag:可选,复数的虚部,默认值为 0。
python
运行
# 示例2:使用complex()函数创建
z6 = complex(2, 5)   # 实部2,虚部5 → 2+5j
z7 = complex(9)      # 仅指定实部,虚部默认0 → 9+0j
z8 = complex(-3, -4) # 实部-3,虚部-4 → -3-4j
z9 = complex(0, 8)   # 纯虚数 → 8j

print(f"z6 = {z6}")  # 输出:z6 = (2+5j)
print(f"z9 = {z9}")  # 输出:z9 = 8j

2.3 从字符串创建复数

complex()函数还支持从符合复数格式的字符串创建复数,注意字符串中不能包含空格。
python
运行
# 示例3:从字符串创建
z10 = complex("4+7j")
z11 = complex("-1-2j")
z12 = complex("8j")   # 纯虚数字符串

print(f"z10 = {z10}") # 输出:z10 = (4+7j)
print(f"z11 = {z11}") # 输出:z11 = (-1-2j)

# 错误示例:字符串包含空格会报错
# z13 = complex("3 + 4j")  # 抛出ValueError: complex() arg is a malformed string

三、复数的核心运算方法

Python 支持复数的所有基本数学运算,包括加减乘除、幂运算、共轭运算等,语法与实数运算完全一致,无需额外处理。

3.1 基本算术运算(加减乘除)

复数的算术运算遵循数学中的复数运算规则,Python 会自动处理实部和虚部的计算。
python
运行
# 定义两个基础复数
a = 3 + 4j
b = 1 + 2j

# 1. 加法:实部相加,虚部相加
add_result = a + b
print(f"{a} + {b} = {add_result}")  # 输出:(3+4j) + (1+2j) = (4+6j)

# 2. 减法:实部相减,虚部相减
sub_result = a - b
print(f"{a} - {b} = {sub_result}")  # 输出:(3+4j) - (1+2j) = (2+2j)

# 3. 乘法:(a+bj)(c+dj) = (ac-bd) + (ad+bc)j
mul_result = a * b
print(f"{a} * {b} = {mul_result}")  # 输出:(3+4j) * (1+2j) = (-5+10j)

# 4. 除法:遵循复数除法规则,结果会自动化简
div_result = a / b
print(f"{a} / {b} = {div_result}")  # 输出:(3+4j) / (1+2j) = (2.2-0.4j)

3.2 幂运算

使用**运算符可以实现复数的幂运算,支持整数、浮点数甚至复数次幂。
python
运行
# 幂运算示例
c = 2 + 3j

# 平方运算
pow2_result = c **2
print(f"{c}² = {pow2_result}")  # 输出:(2+3j)² = (-5+12j)

# 立方运算
pow3_result = c** 3
print(f"{c}³ = {pow3_result}")  # 输出:(2+3j)³ = (-46+9j)

# 开平方(0.5次幂)
sqrt_result = c **0.5
print(f"{c}的平方根 = {sqrt_result}")  # 输出:(2+3j)的平方根 = (1.6741492280355401+0.8959774761298381j)

3.3 共轭复数

复数的共轭是指将虚部符号取反,Python 中可以通过复数的conjugate()方法实现。共轭复数在除法运算、模长计算中常用。
python
运行
# 共轭复数示例
d = 5 - 6j
conj_d = d.conjugate()
print(f"{d}的共轭复数 = {conj_d}")  # 输出:(5-6j)的共轭复数 = (5+6j)

# 验证:复数 × 其共轭 = 实部² + 虚部²(实数)
mul_conj = d * conj_d
print(f"{d} × {conj_d} = {mul_conj}")  # 输出:(5-6j) × (5+6j) = (61+0j)

3.4 获取实部和虚部

复数对象提供了realimag两个属性,可直接获取实部和虚部的数值(返回浮点数类型)。
python
运行
# 获取实部和虚部
e = 7 + 8j
real_e = e.real   # 实部
imag_e = e.imag   # 虚部

print(f"{e}的实部:{real_e},类型:{type(real_e)}")  # 输出:(7+8j)的实部:7.0,类型:<class 'float'>
print(f"{e}的虚部:{imag_e},类型:{type(imag_e)}")  # 输出:(7+8j)的虚部:8.0,类型:<class 'float'>

3.5 复数的模长

复数的模长(绝对值)是指 ,可以通过abs()函数计算。
python
运行
# 模长计算
f = 3 + 4j
mod_f = abs(f)
print(f"{f}的模长 = {mod_f}")  # 输出:(3+4j)的模长 = 5.0

# 验证:模长的平方 = 实部² + 虚部²
print(f"模长平方:{mod_f**2},实部²+虚部²:{3**2 + 4**2}")  # 输出:模长平方:25.0,实部²+虚部²:25

四、复数的实际应用场景

复数并非仅存在于理论中,在实际开发中常见应用场景包括:
  1. 科学计算:如求解二次方程的虚根、电路分析中的阻抗计算;
  2. 信号处理:傅里叶变换(FFT)中大量使用复数表示频域信号;
  3. 图形学:旋转矩阵的计算、复数平面的坐标变换;
  4. 机器学习:部分算法(如复数神经网络)的实现。

五、常见注意事项

  1. 虚数单位必须用小写j,虽然大写J暂时可用,但不符合 PEP8 规范,易引发兼容性问题;
  2. 复数运算返回的结果始终是complex类型,即使虚部为 0(如8+0j);
  3. 并非所有数学函数都支持复数,如math模块的函数大多只支持实数,需使用cmath模块处理复数的数学运算(如cmath.sin()cmath.log());
  4. 字符串创建复数时,字符串内不能包含空格,否则会抛出ValueError

总结

  1. Python 中创建复数主要有三种方式:直接字面量定义、complex()函数创建、字符串解析创建,其中字面量定义是最常用的方式;
  2. 复数支持所有基础算术运算(加减乘除、幂运算),还可通过conjugate()获取共轭复数、abs()计算模长、real/imag获取实虚部;
  3. 复数在科学计算、信号处理等领域不可或缺,掌握其基础用法是进阶 Python 工程开发的必要条件。
通过本文的讲解,相信你已经掌握了 Python 复数的核心用法。在实际开发中,若涉及复数的高级运算(如三角函数、对数),可进一步学习cmath模块,它是 Python 专为复数设计的数学库,能满足更复杂的计算需求。

购买须知/免责声明
1.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
2.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
3.如果本站有侵犯、不妥之处的资源,请在网站右边客服联系我们。将会第一时间解决!
4.本站所有内容均由互联网收集整理、网友上传,仅供大家参考、学习,不存在任何商业目的与商业用途。
5.本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
6.不保证任何源码框架的完整性。
7.侵权联系邮箱:aliyun6168@gail.com / aliyun666888@gail.com
8.若您最终确认购买,则视为您100%认同并接受以上所述全部内容。

小璐导航资源站 Python 浅析Python中复数的创建与运算方法 https://o789.cn/25093.html

下一篇:

已经没有下一篇了!

相关文章

猜你喜欢