1.range() 顾头不顾尾
range(起始位置,终止位置,步长)
range(终止位置)
2.next
__next__是迭代器的方法
带双下滑线的一般情况不直接用,所有方法都可能和内置函数有联系
next(g) 之前所有的g.__next__可以用next(g)代替
3.iter(可迭代的)
迭代器=变量.__iter__()
4.open() 打开文件
编码是操作系统默认的编码(JBK)
5.input(字符串)
python2:
input()还原你输入的值的数据类型
raw_input=py3input
python3:
input()输入所有内容都是字符串类型
阻塞:等待某事件发生,如果不发生一直等
input返回值就是输入内容
6.print()
print(123,"abc",sep="|") sep是分隔符 #123|abc
print((123,"abc",end=@) #123abc@
7.hash
hash算法优化查找
把字符串转换成数字
把元祖转化成数字
把数字转化成数字
哈希导致字典快速查找
8.dir 函数:获取所有内置名字 特殊需求/研究或者了解新的数据类型
9. eval():可以将字符串数据类型python代码执行,eval室友返回值的,不能直接操作文件直接读出来,网络传进来
exec():可以将字符串数据类型python代码执行,exec是没有返回值的,不能直接操作文件直接读出来,网络传进来
eval('print(1+2+3+4)') # 有返回值 # ret = eval('1+2/3*4') # print(ret)
exec('print(1+2+3+4)') # 没有返回值 # ret = exec('1+2/3*4') # print(ret) # exec('for i in range(200):print(i)')
10.help:帮助了解python的
11.compile 能够节省时间工具
先编译python-编码--->字节码(bytes)-解释--->机器码
12. callable() 判断某个变量是否可调用
def func(args): if callable(args): args() else: print("参数不符合规定")
13.locals 本地作用域/局部作用域 , 会随着位置的变化而变化
globals 去哪聚作用域 永远不会变
a = 1 b = 2 print(locals()) print(globals()) def func(): c = 3 d = 4 print(locals()) print('-->',globals())
14.complex: 复数
实数 (有理数和无理数) :世界上存在的数 虚数 : j 某一个数的平方是-1 ,那么这个数就是一个虚数的基础单位 j 复数 = 实数+虚数 = a+bj
15.abs() 求绝对值
16.divmod 商余函数
divmod(被除数 , 除数) 得到结果是商和余数
17. round(小数,保留几位小数) 小数准确
ret = round(2.3258358) print(ret) # 取的是整数 ret = round(2.3253358,2) print(ret) #结果是2.32,保留两位小数
18.pow(x,y,z) 幂运算 x的y次方%z
19.sum(可迭代的数字集,start),start从哪个数开始加
print((1,2,3,4),10) 结果是20 先加括号里面的然后接着加start位置上的数字
20.min/max(iterable/*args,key) key是一个内存地址,key做的事就是根据你对每一项数据的大小的需求来排序
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)
l = [{'name1':10},{'name2':500}]
# max函数 找到股价最高的那个字典,
def func(dic): # {'name1':10}
for k in dic:
return dic[k] # 10
21. reverse 是在原基础上修改:2000项的列表 不会产生额外的内存占用
reversed不修改原基础: 不直接返回列表而返回迭代器,为了不占用更多的内存
22.slice
l = [1,2,3,4,5,] print(l[1:4]) #结果为[2,3,4] ret = slice(1,4) # [1:4] print(l[ret]) # 结果[2,3,4]
23. format
print(forma("test",<20)) 20个字符内左对齐 print(forma("test",>20)) 20个字符内右对齐 print(forma("test",^20)) 20个字符内居中
24.bytes 字节
字符串转化字节: print("abc".encode("utf-8")) print("你好".encode("utf-8")) 字节转化字符串: print(b.decode("utf-8"))
25. bytearray 吧一个字符串变成字节数组,较长的字符串的修改节省内存, 修改行为必须依靠编码
ret = bytearray('abc'*30,encoding='utf-8') # 字节数组 print(ret) ret[0] = 102 # asc码 65A 97abcdef 你好 您好 print(ret)
26.memoryyiew
27. ord/chr 字符和编码之间的转换
print(ord('a')) #97 print(chr(97)) #"a"
28. repr() 打印的时候输出这个变量的数据类型
a = 1 b = '1' print(repr(a),repr(b)) #结果 1 "1"
29.len() 计算长度
30.enumerate 枚举函数
goods_lst= [ {'name':'电脑','price':1999}, {'name':'鼠标','price':20}, {'name':'美女','price':20}, ] for good in enumerate(goods_lst,1): # print(good) index = good[0] dic = good[1] name = dic['name'] price = dic['price'] print(index,name,price) #结果 1 电脑 1999 2 鼠标 20 3 美女 20
31. all参数iterable 只要有一个为假返回False
any 参数iterable 只要有一个为真返回Turn
print(all((1,2,3,True))) #Trun
print(any((1,2,3,True))) #Trun
32.zip 拉链函数 返回迭代器----节省内存
a = (1,2,3,4) b = ('a','b','c') c = ['111','222'] d = {'k1':'v1','k2':'v2'} ret = zip(a,b,c,d) print(ret) for i in ret: print(i) #结果: (1, 'a', '111', 'k1') (2, 'b', '222', 'k2')
33.filter 筛选
ret = filter(None,[1,2,3,0,False]) # 只保留真的 print(ret) for i in ret: print(i)
34.map 讴歌迭代器中的每一个元素都需要去做同一个操作并返回一个结果组成讴歌新列表的时候map来处理
def func(i): return i*'*' ret = map(func,[1,2,3]) print(ret) for i in ret: print(i) #结果: * ** ***
35. sorted 排序 根据key对应的函数的返回值的大小来排序的
由于必须要知道后面的值是谁,才能拍虎顺序,所以结果就是排序后的结果而不是可迭代的
l = [-3,1,2] l.sort() print(l) #[-3,1,2] def func(n): return abs(n) l.sort(key = func) print(l) #[1,2,-3] 求的是绝对值