Python complex 函数
上次修改时间:2025 年 4 月 11 日
本综合指南探讨 Python 的 complex
函数,该函数用于创建复数。我们将介绍创建方法、运算、转换以及复数使用的实际示例。
基本定义
complex
函数从实部和虚部创建一个复数。复数的格式为 a + bj,其中 a 是实部,b 是虚部。
主要特点:接受整数、浮点数、字符串或两个数字。 返回一个不可变的复数对象。 支持所有算术运算和特殊方法。
创建复数
这是一个基本用法,展示了使用 complex
函数创建复数的不同方法。
# From two numbers c1 = complex(3, 4) # 3 + 4j print(c1) # From a string c2 = complex("5+6j") # 5 + 6j print(c2) # With one argument (imaginary part 0) c3 = complex(7) # 7 + 0j print(c3) # From another complex number c4 = complex(c1) # 3 + 4j print(c4)
此示例展示了创建复数的四种主要方法。 最常见的是传递两个数字(实部和虚部)。
字符串格式不能包含空格,并且虚部使用“j”。 单个参数创建一个虚部为 0 的复数。
复数运算
复数支持标准算术运算。 此示例演示了复数的基本运算。
a = complex(2, 3) b = complex(4, 5) # Addition print(a + b) # (6+8j) # Subtraction print(a - b) # (-2-2j) # Multiplication print(a * b) # (-7+22j) # Division print(a / b) # (0.5609756097560976+0.0487804878048781j) # Conjugate print(a.conjugate()) # (2-3j)
复数遵循标准的数学运算规则。 加法和减法按分量进行。 乘法使用分配律。
除法更复杂,需要乘以共轭复数。 conjugate
方法反转虚部的符号。
访问实部和虚部以及转换
此示例演示如何访问实部和虚部以及在类型之间进行转换。
c = complex(3.5, 4.2) # Access parts print(c.real) # 3.5 print(c.imag) # 4.2 # Convert to string s = str(c) # '(3.5+4.2j)' print(s) # Convert from string c2 = complex(s) print(c2) # (3.5+4.2j) # Absolute value (magnitude) print(abs(c)) # 5.4644304369257
real
和str
函数转换为字符串表示形式,可以将其解析回复数。
abs
函数返回大小(√(real² + imag²))。 这对于许多数学应用很有用。
实际应用:旋转
复数可以表示 2D 空间中的旋转。 此示例演示通过乘以单位复数来旋转一个点。
import math def rotate_point(point, angle_degrees): # Convert angle to radians angle = math.radians(angle_degrees) # Create rotation complex number rotation = complex(math.cos(angle), math.sin(angle)) # Convert point to complex point_complex = complex(*point) # Apply rotation rotated = point_complex * rotation return (rotated.real, rotated.imag) original = (3, 4) rotated = rotate_point(original, 90) print(f"Original: {original}") print(f"Rotated 90°: {rotated}")
这演示了复数乘法如何执行旋转。 旋转复数的大小为 1(单位圆),角度为 θ。
结果显示点 (3,4) 逆时针旋转 90 度,大约应为 (-4,3)。
错误处理
complex
函数对无效输入引发 ValueError
异常。 此示例展示了正确的错误处理。
try: c = complex("3 + 4 i") # Spaces and wrong imaginary symbol except ValueError as e: print(f"Error: {e}") try: c = complex("abc") # Non-numeric string except ValueError as e: print(f"Error: {e}") try: c = complex(3, "4") # Non-numeric argument except TypeError as e: print(f"Error: {e}")
这些示例演示了 complex
对无效输入的行为。 字符串解析对格式要求严格。 参数必须是数字。
对于健壮的代码,请在转换之前验证输入或适当地处理这些异常。
最佳实践
- 用于数学运算: 复数简化了许多计算
- 首选双参数构造函数: 比字符串解析更具可读性
- 记录假设: 清楚地记录何时使用复数
- 谨慎处理转换: 注意浮点数的精度损失
- 考虑使用 cmath 模块: 用于高级复数函数
资料来源
作者
列出所有 Python 教程。