第一部分:函数基础

函数的作用意义:
1.为了更好地管理代码,可能对应的代码块需要重复多次使用,所以通过一个函数封装起来,便于下次直接调用
2.方法实际上是通过函数实现的
例1:
1 2 3 4 5 6 7 8 9 10 | # type() # 内置函数def lis(): li=[1,2,3] li.append(4) li.pop(2) # 指定删除 # print(li) # [1, 2, 4] return li # 只有这里有return返回值调用的时候才能打印出来a=lis() # 调用print(a) # None |
运行截图:

例2:字母大小写转换
1 2 3 | s='abc's2=s.upper() # 有个return返回值给到s2接受print(s2) |
运行截图:

第二部分:函数参数


例1: 默认参数实参没有传值的时候就使用默认值,传了值就按下面的实参,注意:默认参数要位于必备参数列表的后面
1 2 3 4 5 6 7 8 | def name(a,b=1): # 定义函数的时候写的参数叫做形参:必备参数 num=a+b print(a) print(b) return num # 这里有没有retrun的作用区别注意一下# b有默认值暂时不传值进去了l=name(6) # 实参 ===》 这里的l只接受return返回值print(l) |
运行截图:

如果给b也传值进去:
1 2 3 | # l=name(6) # 实参 ===》 这里的l只接受return返回值l=name(6,2)print(l) |
运行截图:

注意:return 和print的区别
return:返回结果,结束函数
print:打印结果
如果要两个数拼接就需要函数体里面有返回值才可以实现
1 2 3 4 5 6 7 8 9 10 11 12 | def name(a,b=1): # 定义函数的时候写的参数叫做形参:必备参数 num=a+b print(a) print(b) return num # l=name(6) # 实参 ===》 这里的l只接受return返回值l=name(6,2)# print(l)# 如果要两个数拼接就需要函数体里面有返回值才可以实现print('总和是:%s,请核实一下信息'%l) |
例题2:不定长参数(不限定长度,也可以不传参数)*args
1 2 3 4 5 6 7 8 9 10 | def name(a,b=1,*args): # 定义函数的时候写的参数叫做形参:必备参数 num=a+b print(a) print(b) # return num print(args) # (2, 4, 5)l=name(6,4,2,4,5) # 实参 ===》 这里的l只接受return返回值# l=name(6,4,*(2,4,5)) # 也可这样写print(l) |
运行截图:

例3:不定长参数:**kwargs(不管传多少个参数都可以)
1 2 3 4 5 6 7 | def name(*args,**kwargs): print(args) # (2, 4, 5) print(kwargs)# l=name(6,4,2,4,5) # 实参 ===》 这里的l只接受return返回值l=name(6,4,*(2,4,5),**{'a':3,'c':1}) # 也可这样写print(l) |
运行截图:

例4:指定传参数
1 2 3 4 5 6 7 8 | def name(a,b=1,*args): num=a+b print(a) print(b) return numal1=name(a=3,b=5) # 这样写可指定传参print(al1) |
运行截图:


第三部分:常见内置函数


1.过滤器:filter(函数,过滤的对象)
1 2 3 4 5 6 7 8 9 10 11 12 | li=[3,2,1,0,5,7,9]def num(obj): if obj>=5: # print(obj) return obj# 过滤器:filter(函数,过滤的对象)# list(filter(num,li))# tu=tuple(filter(num,li))tu=str(tuple(filter(num,li)))# 把元组转换成字符串拼接到字符串里面print('优秀学员:%s'%(tu)) |
运行截图:

2.zip:将对象逐一配对(没有的就不配对了)
1 2 3 | li1=[11,2,4,5]t=('小明','小花','小张')print(dict(zip(li1,t))) # 配对:类型转换 |
运行截图:

3.enumerate :返回一个可以枚举的对象( 类型转换才可以看到效果)
1 2 3 | print(list(enumerate(['小明','肖工','李工'])))print(tuple(enumerate(['小明','肖工','李工'])))print(dict(enumerate(['小明','肖工','李工']))) |
运行截图:

4.eval:取出字符串中的内容
1 2 3 4 | # 将字符串当成有效的表达式来求值并返回计算结果,不能赋值b=22eval('print(123)')eval('print(b)') |
运行截图:

5.exec :执行字符串编译过的字符串
1 2 3 4 | c='print(123)'exec(c)exec('d=5') # 可以赋值print(d) |
运行截图:

6.map(与filter的区别是不管是否满足都会返回,不满足的返回默认None,可以手动改下)
1 2 3 4 5 6 7 8 9 10 | li2=[62,82,81,90,95,77,69]def f(o): if o>=80: return '优秀' else: return '加油'print(li2)m=list(map(f,li2))print(m) |
运行截图:

练习:
定义一个函数,可以对传入的数据进行排序, 通过一个参数来决定是正向排序还是反向排序
每逢佳节倍思亲,又是一年中秋,国庆。祝愿所有亲朋好友月饼节吃的开心,喝的浪漫,对于自己还是那句话先努力挣钱吧,没有足够的积蓄哪有想要诗与远方的遐想与底气呢? -----------加油吧,打工人
