迭代器相关内置函数
字符串类型代码的执行
eval() 执行字符串类型的代码,并返回最终结果
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
n = eval('2+8') print(n) 结果: 10 n1 = 4 print(eval('n1+10')) 结果: 14
exec() 执行字符串类型的代码,没有返回结果
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
n = exec('2+8') print(n) 结果: None
compile 将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
流程语句使用exec code1 = 'for i in range(0,10): print (i)' compile1 = compile(code1,'','exec') 编译 python-> 字节码 exec (compile1) 结果: 0 1 2 3 4 5 6 7 8 9
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#简单求值表达式用eval code2 = '1 + 2 + 3 + 4' compile2 = compile(code2,'','eval') eval(compile2)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#交互语句用single >>> code3 = 'name = input("please input your name:")' >>> compile3 = compile(code3,'','single') >>> name #执行前name变量不存在 Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> name NameError: name 'name' is not defined >>> exec(compile3) #执行时显示交互命令,提示输入 please input your name:'pythoner' >>> name #执行后name变量有值 "'pythoner'"
输入输出
input('字符串数据类型的参数,提醒用户你要输入的内容')
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
python2 input() 还原你输入的值的数据类型 raw_input = py3.input python3 input() 输入的所有内容都是字符串类型 阻塞: 等待某件事情发生,如果不发生一直等着input的返回值就是用户输入的内容 输入的内容 = input('提示')
print(要打印的内容1,要打印的内容2,要打印的内容3,sep = '分隔符',end = '结束符')
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print(123) print('abc') print(123,'abc') print(123,'abc','aaa',sep = '|') print(123,'abc','aaa',end = '@') print(123,'abc','aaa',end = '@') print(123,'abc') f = open('file','w') print(123,'abc',file=f) # print的本质 就是写文件 这个文件是pycharm的屏幕 f.close()
内存相关
hash() 获取对象的哈希值(int.str,bool,tuple)
id() 获取到对象的内存地址
帮助
help() 函数用于查看函数或模块用途的详细说明
查看内存属性
dir() 查看对象的内置属性,方法,访问的是对象的__dir__()方法
取值范围
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 range(起始位置,终止位置,步长) range(终止位置) range(起始,终止位置) range(起始,终止,步长) range(5) [0,4] [0,5) range(1,5) [1,4] [1,5) range(1,10,2) [1,3,5,7,9] range(0,10,2) [0,2,4,6,8]
导入模块
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import time # 导入别人写好的代码
hash
哈希 可哈希(不可变数据类型) 不可哈希(可变数据类型)
哈希是一个算法,导致了字典的快速寻址
所有的数据要想得到不变的hash值,必须是一个不可变的数据类型
callable
callable(o),o是参数,看这个变量是不是可调用。
如果o是一个函数名,就会返回Tru
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
def func():pass print(callable(func)) #参数是函数名,可调用,返回True print(callable(123)) #参数是数字,不可调用,返回False
complex
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
实数 :有理数和无理数 虚数 : j 复数 = 实数+虚数 = a+bj 复数不能比较大小 共轭复数 : a+bj 和 a-bj是一对共轭复数 a+bj 和 a+bJ都是复数
bin cot hex
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
bin:转化为二进制 print(bin(a) oct:转化为八进制 print(oct(a)) hex:转化为十六进制 print(hex(a))
abs
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
abs:求绝对值,整数的绝对值是整数,负数的绝对值也是正数 print(abs(5)) print(abs(-5))
dicmod
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
divmod:商余函数 print(divmod(10,3) 结果: (3, 1)#商为3,余为1
round
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
小数,保留几位小数 ret = round(2.34564524352) print(ret) 结果: 2 ret = round(2.34564524352,2) #保留两位小数 print(ret) 结果: 2.35 python2.x(完全的四舍五入)和python3.x(更精准的计算方式)不同
pow
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
pow(x,y,z) :幂运算/幂余运算(x的y次方%z) print(pow(2,3)) 结果: 8 print(pow(3,2)) 结果:9 print(pow(5,2,3)) 结果:1 print(pow(4,2,2)) 结果:0
sum
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sum(可迭代的数字集,start),start从哪个数开始加 print(sum((1,2,3,4))) 结果:10 print(sum([1,2,3,4])) 结果:10 print(sum(range(10))) 结果:45 print(sum((i**2 for i in range(5)))) 结果:30 print(sum((1,2,3,4))) 结果:10 print(sum((1,2,3,4),10)) 结果:20 print(sum((1,2,3,4),30)) 结果:40
min max
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
min/max(iterable/*args,key) :key是一个函数的内存地址,key做的事情就是根据你对每一项数据大小的需求来排序 print(min(1,2,3)) 1 print(min((1,2,3))) 1 print(min((1,2,3),(4,5,6))) (1,2,3) print(min((7,2,3),(4,5,6))) (4,5,6) def func(n): # n = 2,3,4,7 return n%6 # 2,3,4,1 ret = min(2,3,4,7,key = func) print(ret)
reversed
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
reversed(list/tuple) 返回一个迭代器,为了节省内存 l = [1,2] l.reverse() print(l) ret = reversed([1,2,3]) # iterator print(ret) reverse是在原基础上修改 : 2000项的列表 不会产生额外的内存占用 reversed不修改原基础 : 不直接返回列表而返回迭代器,为了不占用更多的内存
slice
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
l = [1,2,3,4,5] print(l(1:4))
format
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print(format('test', '<20'),'wanglan') print(format('test', '>20'),'wanglan') print(format('test', '^20'),'wanglan')
bytes
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
bytes:字节 print('abc'.encode('utf-8')) print('你好'.encode('utf-8')) 结果: b'abc' b'xe4xbdxa0xe5xa5xbd' b = b'xe4xbdxa0xe5xa5xbd' print(b.decode('utf-8')) 结果: 你好
bytearray
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
bytearray 把一个字符串编程一个字节数组,较长的字符串的修改节省内存,修改行为必须依靠编码 ret = bytearray('abc'*30,encoding='utf-8') # 字节数组 print(ret) ret[0] = 102 # asc码 65A 97abcdef 你好 您好 print(ret) 结果: bytearray(b'abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc') bytearray(b'fbcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc')
ord/chr
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
ord/chr 字符和编码之间的转换 print(ord('a')) print(chr(97)) 结果: 97 a
repr
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
repr() 打印的时候输出这个变量的数据类型 a = 1 b = '1' print(repr(a),repr(b))
len
计算长度