来源: “码农不会写诗”公众号
链接:Python基本数据类型之复数complex
文章目录
- 01 基本概念
- 02 基本运算
- 03 拓展1复数与向量
复数complex
Python基本数据之复数(complex)即包含实部和虚部的数字。
01 基本概念
即包含实部和虚部的数字。
在Python中,复数用complex类型表示,可以用a + bj或者a + bJ的形式表示,其中a是实部(real),b是虚部(imag)。
complex1 = 1 + 2j # (1+2j), 直接表示
complex2 = 1 + 2J # (1+2j), 直接表示
complex3 = complex(1, 2) # (1+2j), 构造函数
实部和虚部可以通过属性访问。
complex1 = 1 + 2j
print(complex1.real) # 1.0, 实部
print(complex1.imag) # 2.0, 虚部
02 基本运算
基本算术运算,包括加、减、乘和除法。
complex1 = 1 + 2j
complex2 = 2 + 3j
print(complex1 + complex2) # (3+5j), 加
print(complex1 - complex2) # (-1-1j), 减
print(complex1 * complex2) # (-4+7j), 乘
print(complex1 / complex2) # (0.6153846153846154+0.07692307692307691j), 除
复数的共轭(conjugate)是将虚部的符号反转;模(magnitude)是复数到原点的距离,其可使用abs()函数或cmath模块的polar()函数计算。
complex1 = 3 + 4j
print(complex1.conjugate()) # (3-4j), 共轭
print(abs(complex1)) # 5.0, 模: sqrt(3^2 + 4^2)
import cmath
print(cmath.polar(complex1)) # (5.0, 0.9272952180016122), 函数返回值为: (模, 相位角)
print(cmath.polar(complex1)[0]) # 5.0
用极坐标形式表示复数:r * (cos(theta) + i * sin(theta)),其中r是模,theta是相位角。
import cmath
complex1 = 1 + 2j
print(cmath.phase(complex1)) # 1.1071487177940904, 相位角(弧度)
print(cmath.polar(complex1)) # (2.23606797749979, 1.1071487177940904), 极坐标形式: (模, 相位角)
03 拓展1复数与向量
复数(complex )本身并不直接表示向量,但可以用于表示二维空间中的向量,如实部表示x分量,虚部表示y分量。
vector = 3 + 4j # 表示向量 (3, 4)
print(vector1.real * vector2.real + vector1.imag * vector2.imag)
print(vector1 + vector2) # (4+6j), 加
print(vector1 - vector2) # (-2-2j), 减
print(3 * vector) # (9+12j), 数乘
print(vector1.real * vector2.real + vector1.imag * vector2.imag) # 11.0, 点积
print(abs(vector)) # 5.0, 模
import cmath
print(cmath.phase(vector)) # 0.9272952180016122, 辐角(弧度表示)
print(vector.real) # 3.0, 向量分解x
print(vector.imag) # 4.0 向量分解y
温馨提示:尽管实际开发不一定采用这种表示方式,但也不失为一种可借鉴思路。
今天的内容就到这里啦,先拜了个拜~
上一篇:Python基本数据类型之浮点数float