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)

 

posted @ 2019-04-23 15:23  P-Z-W  阅读(239)  评论(0编辑  收藏  举报