1、Python中的复数
虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数。
表示虚数的语法:real+imagj
实数部分和虚数部分都是浮点数
虚数部分必须有j或J
下面是一些复数:
64.23+1j 4.34-8.5j 0.23-8.33j 1.23e-0.45+6.5e+0.83j -1.23-3.5j -0.34-0j
复数中的内建属性
复数拥有数据属性,分别为该复数的实数和虚数部分。复数还有conjugate方法,调用它可以返回该复数的共轭复数对象。
>>> aComplex = 1.56 + 1.2j >>> aComplex (1.56+1.2j) >>> bComplex = 1 - 1j >>> bComplex (1-1j) >>> aComplex.real 1.56 >>> aComplex.imag 1.2 >>> aComplex - bComplex (0.56+2.2j) >>> abs(aComplex) #返回复数的模长 1.968146336022807 >>> aComplex.conjugate <built-in method conjugate of complex object at 0x00000224D6C11E10> >>> aComplex.conjugate() (1.56-1.2j)
2、complex()函数
complex()函数用于创建一个复数或者将一个数或字符串转换为复数形式,其返回值为一个复数。该函数的语法为:
class complex(real,imag)
其中,real可以为int、long、float或字符串类型;而image只能为int、long、或float类型。
注意:如果第一个参数为字符串,第二个参数必须省略,若第一个参数为其他类型,则第二个参数可以选择。实例:
>>> 1 + 1j (1+1j) >>> complex(1) #数字 (1+0j) >>> complex(1,2) (1+2j) >>> complex("1") #当做字符串处理 (1+0j) complex("1 + 2j") #会出错,+号两边不能有空格,否则会报错 >>> complex("1+2.0j") (1+2j)
第一个参数为字符串,还添加第二个参数时会报错:
>>> complex("x",15) TypeError: complex() can't take second arg if first is a string
3、复数的旧式格式化输出
在格式化输出时,使用%r或%s都可以。
在输出复数时,%r和%s的效果如下:
a = 4.7+0.666j print('%r的效果是:', end='') print('%r' % a) print('%s的效果是:', end='') print('%s' % a)
输出结果:
%r的效果是:(4.7+0.666j) %s的效果是:(4.7+0.666j)
可见效果是一致的。
4、复数的format格式化输出
(3)关于复数
“{0.real:.3f}{0.imag:+.3f}j”.format(4.2344+5.3445j) ==> ‘4.234+5.345j’ “{0.real:.3f}{0.imag:-.3f}j”.format(4.2344+5.3445j) ==> ‘4.234-5.345j’
前面的+-可以不写让他自己去判断:
“{0.real:.3f}{0.imag:.3f}j”.format(4.2344+5.3445j) ==> ‘4.234+5.345j’ “{0.real:.3f}{0.imag:.3f}j”.format(4.2344+5.3445j) ==> ‘4.234-5.345j’