python note 13 内置函数
1、
lst = ["白蛇传","骷髅叹","庄周闲游"] it = lst.__iter__() print(it.__next__()) print(it.__next__()) print(it.__next__()) it = iter(lst) # 内部封装的就是__iter__() print(it.__next__()) print(next(it)) # 内部封装的是__next__()
2、
#hash的目的是为了存储. 计算之后是一个数字. hash值尽量的不要重复(在某些特定环境下hash可能会重复)
lst = (1,2,3,4,5,6) print(hash(lst))
3、
# print(dir(str)) # 所有方法名字 # print(help(str)) # 帮助文档
4、callable(是否可以被调用执行)
def a(): pass print(callable(a)) # 是否可以被调用执行
5、进制
print(bin(3)) # 5的二进制 0b二进制 print(oct(8)) # 0o八进制 print(hex(15)) # 0x十六进制 0123456789ABCDEF
6、其他函数
abs
print(abs(32)) # 绝对值 |绝对值| 取模
divmod
print(divmod(10, 3)) # 计算商和余数
round
print(round(4.51)) # 四舍五入
pow
print(pow(2, 4, 3)) # 求次幂, 第三个参数, 计算余数
sum、max、min
print(sum([1,2,3,4,5], 3)) # 求和 print(min([5,12,45,6,7,34])) # 最小值 print(max([5,12,45,6,7,34])) # 最大值
reversed
lst = ["马化腾", "马云", "马大帅", "马超"] ll = reversed(lst) # reversed()翻转. 返回迭代器 print(list(ll))
slice
lst = ["马化腾", "马云", "马大帅", "马超"] s = slice(1,3,2) # 切片 print(lst[s]) print(lst[1:3:2])
ord
print(ord('a')) # 查看字母a的编码位置 97 print(ord("A")) # 65 print(ord("中")) # 20013
chr(和ord相反)
print(chr(20013))
7、format用法
print(format(s,"^20")) # 居中 print(format(s,">20")) # 右对齐 print(format(s,"<20")) # 左对齐
print(format(3, 'b')) #11 二进制 11 print(format(97, 'c' )) #a 转换成unicode字符 print(format(11, 'd' )) #11 十进制 print(format(11, 'o' )) #13 ⼋进制 print(format(11, 'x' )) #b ⼗六进制(⼩写字⺟) print(format(11, 'X' )) #B ⼗六进制(⼤写字⺟) print(format(11, 'n' )) #11 和d⼀样 print(format(11)) #11 和d⼀样
#浮点数
print(format (123456789, 'e' )) #1.234568e+08 科学计数法. 默认保留6位⼩数 print(format (123456789, '0.2e' )) #1.23e+08 科学计数法. 保留2位⼩数(⼩写) print(format (123456789, '0.2E' )) #1.23E+08 科学计数法. 保留2位⼩数(⼤写) print(format (1.23456789, 'f' )) #1.234568 ⼩数点计数法. 保留6位⼩数 print(format (1.23456789, '0.2f' )) #1.23 ⼩数点计数法. 保留2位⼩数 print(format (1.23456789, '0.10f')) #1.2345678900 ⼩数点计数法. 保留10位⼩数 print(format (1.23456789e+10000, 'F' )) #INF ⼩数点计数法. INF 无穷大
# 原样输出
print(r"你好啊\n 我不好\n\好不好\t, 他好我也好\", 到底谁好")
enumerate
lst = ["张国荣", "黄渤", "郭达森", "泰森", "甄子丹"] for i in range(len(lst)): print(i, lst[i]) #与上处输出相同 for i, el in enumerate(lst): print(i, el)
# all() and
# any() or
# 所有的空 都是False
print(all([True, 1, 1, 1])) print(any([1, 1, 0, 0]))
# zip() 压缩
lst1 = ["甜蜜蜜", "往事只能回味", "难忘今宵", "分红的回忆", "十年"] lst2 = ["邓丽君", "韩宝仪", "李谷一", "王宝强", "陈奕迅"] lst3 = ["2000","3000","5","120","50000"] a = zip(lst1, lst2,lst3) # 水桶效应 print("__iter__" in dir(a)) # 可迭代的 #输出True for el in a: print(el) #输出('甜蜜蜜', '邓丽君', '2000') ('往事只能回味', '韩宝仪', '3000') #('难忘今宵', '李谷一', '5') ('分红的回忆', '王宝强', '120') ('十年', '陈奕迅', '50000')
#eval()还原回字典,列表.
a = "{'name':'汪峰', 'age':'48', 'wife':{'name':'国际章','age':'38'}}" # json. 像字典一样的东西 d = eval(a) # 还原回字典,列表. print(d['name'])
#exec让程序去执行代码
s = "a = 10" exec(s) # 执行代码 print(a) # pycharm里的报错信息. 不一定是对的 content = input("请输入你的代码:") exec(content) print(a)
#compile
s = "for i in range(10): print(i)" c = compile(s, "", "exec") #编译 exec(c)
s = "5+9" c = compile(s, "", "eval") ret = eval(c) print(ret)
s = "content = input('请输入你的名字:')" c = compile(s, "", "single") #编译 exec(c) #执行 print(content)