一、内置函数
1. complex([real[,imag]])
返回一个复数,实部 + 虚部*1j,或者把字符串或者数字转成复数形式。
参数可以是复数表达式,也可以是字符串。当参数是字符串的时候,数字与操作符之间不能有空格。即comple(‘1 + 2j’)是错误的。
print(complex(1, 2))
print(complex(1 + 2j))
print(complex(‘1+2j’))
输出 1+2j
print(complex(1))
输出 1+0j
满足:实部 + 虚部*1j 的数被称为复数。
a = 1 + 3j
求实部
print(a.real)
求虚部
print(a.imag)
求共轭
print(a.conjugate())
2. chr(i) 与 ord(i)
chr(i) 是将当前整数 i 转成对应的 ascii 字符,可以是十进制,也可以是十六进制,其中0 <= i <= 0x10ffff (1114111)。其对应的逆操作为 ord(i),i 为 ascii 字符。
下面的函数演示如何求一个可迭代对象的 ascil字符 或者其对应的数值。注意函数 ordplus ,参数 x 中的每一个元素必须是单个字符,如果是列表,形式如下:[‘P’ , ‘y’, ‘t’ , ‘h’, ‘o’ , ‘n’]。
def chrplus(x):
chr_string = ‘’
for elem in x:
chr_string += chr(elem)
return chr_string
def ordplus(x):
ord_list = []
for elem in x:
ord_list.append(ord(elem))
return ord_list
x = ‘Python高效编程’
temp = ordplus(x)
print(temp)
输出:[112, 121, 116, 104, 111, 110,
39640, 25928, 32534,31243]
init = chrplus(temp)
print(init)
输出:Python高效编程
3.enumerate(iterable, start=0)
返回 enumerate 对象。迭代对象必须是序列,迭代器,或者其他支持迭代的对象。enmerate() 函数返回的是迭代器,同样是可迭代对象。每次迭代的元素,都包含元素在序列里的序号(strat 默认值为 0) 和元素对应值。因此,我们可以用 for 循环获取返回值。
等价于:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
for i, elem in enumerate([‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’]):
print(i, elem)
4. abs(x)
返回数的绝对值。参数可以是整数或者浮点数。如果参数是复数,返回复数的模。Python 中虚数用数值加上字符 j 的形式表示。要注意 j 前面的数值不能省略,比如 1j。
下面是我写的简易版的 abs 函数:
from math import sqrt
def naive_abs(x):
isinstance 判断参数x是否为整数或浮点数
if isinstance(x, int) or isinstance(x, float):
if x < 0:
x = - x
判断参数x是否为复数
elif isinstance(x, complex):