函数可以作为返回值
def bar():
def inner():
print(123)
return inner
v = bar()
v()
闭包:为函数创建一块区域(内部变量,供自己使用),为他以后执行提供数据
name = ‘oldboy‘
def bar(name):
def inner():
print(name)
return inner
v1 = bar(‘yang‘)
v2 = bar(‘chang‘)
v1()
v2()
#输出结果为
#yang
#chang
注意:函数是何时创建的
lambda(匿名函数)
在数据类型的方法中有无返回值
无返回值
列表
v1 = [11,22,33]
v1.append(99)
仅有返回值
字符串、字典
#练习1,字符串
v = ‘alex‘
result = v.split(‘l‘)
print(result)
#练习2,字典
v = {‘k1‘:‘v2‘}
result1 = v.get(‘k1‘)
result2 = v.keys()
print(result1,result2)
有返回值+修改
v = [11,22,33]
result = v.pop()
chr——将十进制数字转换成unicode编码中的对应字符
ord——根据字符在unicode编码中找到其中对应的十进制
#生成随机字母
import random
data = []
for i in range(6):
v = random.randint(65,100)
data.append(chr(v))
print(‘‘.join(data))
map ,循环每个元素(第二个参数一定是一个可迭代的数据),然后让每个参数执行函数(第一个参数),将每个参数执行的结果保存到新的列表中,并返回
#map函数与lambda函数并用
v1 = [11,22,33,44]
result = map(lambda x:x+100,v1)
print(list(result))
filter,结构基本与map相同,但是主要用于筛选
#filter与lambda、与升级的三元运算共用
v1 = [11,22,‘aa‘,‘bb‘,33,44]
result = filter(lambda x:type(x)==int,v1)
print(list(result))
ruduce,基本结构与map相同,但主要用于巴函数弄到一块
import functools
v1 =[1,2,3,4,5,6]
def func(x,y):
return x*y
result = functools.reduce(func,v1)
print(result)
def funs(a):
import hashlib
obj = hashlib.md5()
obj.update(a.encode(‘utf-8‘)) #注意encode,以及a后的.a为函数的参数
result = obj.hexdigest()
return(result)
v = funs("dyhgjf")
print(v)
加盐,防止md5解密器解密
def funs(a):
import hashlib
obj = hashlib.md5(‘hjafsdkada‘.encode(‘utf-8‘))#在括号里面加入任意字符串,来达到加密的效果
obj.update(a.encode(‘utf-8‘))
result = obj.hexdigest()
return(result)
v = funs("1")
print(v)
原文:https://www.cnblogs.com/yangzilaing/p/13222604.html