python内置函数与闭包

拟墨画扇 提交于 2019-11-27 21:14:07

内置函数 I 了解

# all()  any()  bytes() callable() chr() complex() divmod() eval() exec() format() frozenset() globals() hash() help()
# id() input() int()  iter() locals() next()  oct()  ord()  pow()    repr()  round()
# eval 剥去字符串的外衣,返回里面的本质
# s1 = "{1: 'alex'}"
# ret = eval(s1)

# exec 代码流,过程。
# s3 = '''
# for i in range(3):
#     print(i)
# '''
# exec(s3)

# hash:获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。
# print(hash(12322))
# help:函数用于查看函数或模块用途的详细说明。
# print(help(list))
# print(help(str.split))
# callable:函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;
# 但如果返回False,调用对象ojbect绝对不会成功。
# name = 'alex'
# def func():
#     pass
# print(callable(name))  # False
# print(callable(func))  # True
# int:函数用于将一个字符串或数字转换为整型。
# print(int('0100',base=2))  # 将2进制的 0100 转化成十进制。结果为 4
# float:函数用于将整数和字符串转换成浮点数。
# complex:函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
# bin:将十进制转换成二进制并返回。
# oct:将十进制转化成八进制字符串并返回。
# hex:将十进制转化成十六进制字符串并返回。
# divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
# round:保留浮点数的小数位数,默认保留整数。
# pow:求x**y次幂。(三个参数为x**y的结果对z取余)
# bytes:用于不同编码之间的转化。
# ord 输入字符找该字符编码的位置
# chr 输入位置数字找出其对应的字符
# repr:返回一个对象的string形式(原形毕露)。
# print(repr('{"name":"alex"}'))
# print('{"name":"alex"}')
# %r  原封不动的写出来
# name = 'taibai'
# print('我叫%r'%name)
# all  可迭代对象中,全都是True才是True
# any  可迭代对象中,有一个True 就是True
# print(all([1,2,True,0]))
# print(any([1,'',0]))

内置函数II 重要

# abs() enumerate() filter()  map() max()  min() open()  range() print()  len()  list()
# dict() str()  float() reversed()  set()  sorted()  sum()    tuple()  type()  zip()  dir()
# sep 设定分隔符。
# print(1, 2, 3, sep='|')
# end去除默认换行
# print(1, 2, end=' ')
# print(3, 4)
# abs()  获取绝对值
# print(abs(-10))
# sum() 数字相加求和 会for循环里面元素 必须里面都是由int组成 注意列表 sum(iterable,)
print(sum([1, 2, 3, 4], 100))
# min 可以加功能 key 与匿名函数结合
# min 可以加功能
# print(min([22, 11, 45, 2]))
# l1 = [(73, 'alex'), (35, '武大'), (18, '太白')]
# print(min(l1,key=lambda x: x[0]))
# print(min(l1,key=lambda x: x[0])[0])
# 第一步 循环遍历l1 将里面的元素以形参的方式传给匿名函数得到返回值
# 第2步  利用内置函数比较返回值 得到想要的结果,在将传进去的元素返回
# max() 最大值 加key
# reversed() 将一个序列翻转, 返回翻转序列的迭代器 reversed 示例:
# l = reversed('123')  # l 获取到的是一个生成器 注意字符串转list会分隔
# print(list(l))
# sorted排序函数 可以加key
# lst = [{'id': 1, 'name': 'alex', 'age': 18},
#        {'id': 2, 'name': 'wusir', 'age': 17},
#        {'id': 3, 'name': 'taibai', 'age': 16}, ]
# # 按照年龄对学生信息进行排序
# print(sorted(lst, key=lambda e: e['age']))

# map(function,iterable) 可以对可迭代对象中的每一个元素进映射,分别取执行function
# 计算列表中每个元素的平方,返回新列表
# lst = [1,2,3,4,5]
# def func(s):
#     return  s*s
# mp = map(func,lst)
# print(mp)#对象
# print(list(mp))
# # 改写成lambda
# print(list(map(lambda s:s*s,lst)))

bytes() #把字符串转换成bytes类型
# zip() 拉链方法。函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
# 然后返回由这些元祖组成的内容,如果各个迭代器的元素个数不一致,则按照长度最短的返回
# lst1 = [1,2,3]
# lst2 = ['a','b','c','d']
# lst3 = (11,12,13,14,15)
# for i in zip(lst1,lst2,lst3):
#     print(i)

闭包

# 闭包的定义:  默认参数就是闭包原理
#     1. 闭包是嵌套在函数中的函数。
#     2. 闭包必须是内层函数对外层函数的变量(非全局变量)的引用。
# 引用的变量就是自由变量,自由变量不会随着函数的执行结束之后而消失

# 如何判断判断闭包
# 如果此函数拥有自由变量,那么就可以侧面证明其是否是闭包函数了
# 利用 函数名.__code__.co_freevars 查看函数的自由变量

# 闭包的作用:保存局部信息不被销毁,保证数据的安全性。
# 闭包的应用:
# 可以保存一些非全局变量但是不易被销毁、改变的数据。
# 装饰器。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!