微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python内置函数与闭包

内置函数 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,3,sep='|')
# end去除认换行
# print(1,end=' ')
# print(3,4)
# abs()  获取绝对值
# print(abs(-10))
# sum() 数字相加求和 会for循环里面元素 必须里面都是由int组成 注意列表 sum(iterable,)
print(sum([1,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,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,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 查看函数的自由变量

# 闭包的作用:保存局部信息不被销毁,保证数据的安全性。
# 闭包的应用:
# 可以保存一些非全局变量但是不易被销毁、改变的数据。
# 装饰器。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐