Python进阶
- 函数
- 内置函数
- 自定义函数
- 解包
- 匿名函数
- 回调函数
函数
函数介绍:
1.函数是一段代码的组合,用来实现具体的功能
2.内置函数可以直接调用
3.自定义函数可以根据业务需要设计不同的实现代码
内置函数
内置函数可以直接调用,例如print()函数:print("你好")print(type("你好"))print(len("你好"))输出结果: 你好<class'str'>2print()
Python中的打印输出函数 语法结构是:print(*objects,sep=' ',end='\n',file=sys.stdout)objects:表示输出的对象,输出多个对象时需要用英文逗号分割 seq:用来间隔(拼接)多个对象 end:用来设定以什么结尾,默认是换行符\nfile:要写入的文件对象,该参数必须是一个具有write(String)方法的对象,如果参数不存在或为None, 则将使用sys.stdout。由于要打印的参数会被转换为文本字符串,因此print()不能用于二进制模式的文件对象, 只能用file.write(...)自定义函数
自定义函数:1.格式:def函数名():函数体(具体的业务逻辑代码)def开头且不需要行缩进,后面跟一个空格,然后是函数名、英文小括号、英文冒号 例:# 无参函数defself_print():print("这里是自定义函数!")# 调用自定义函数self_print()self_print()# 输出:这里是自定义函数!# 函数的不定长关键字参数defself_print2(**kwargs):print(kwargs)# 调用自定义函数self_print2()self_print2(name="你好",age=18)# 输出:{'name': '你好', 'age': 18}# 函数的不定长参数defself_print3(*kwargs):print(kwargs)# 调用自定义函数self_prints()self_print3("1","2","3","4")# 输出:('1', '2', '3', '4')self_print3(1,2,4,5)# 输出:(1, 2, 4, 5)解包
# 自定义函数deffun2(*args):returnargsprint(fun2(3))# 返回元祖(3,)print(fun2(3,4))# 返回元祖(3, 4)print(*fun2(3,4,5))# 返回元素3 4 5 # 解包:展开所有元素匿名函数
没有具体函数名,一般是比较简单的内容才会会用到匿名函数,比如一行代码可以搞定的,一般用来作为参数使用。
格式:lambda 参数1,参数2,…参数n: 方法体
格式说明:lambda关键字后面跟空格,然后跟参数,多个参数用英文逗号分割,然后是英文冒号,然后空格,然后跟方法体。
sub1=lambdax,y,z:x+y+zprint(sub1(1,2,3))# 输出:6回调函数
函数名被当做其他函数的参数进行调用
1.具名函数回调# 自定义加法函数defadd(x,y):print(x+y)# 自定义减法函数defsub(x,y):print(x-y)# 自定义乘法函数defmul(x,y):print(x*y)# 自定义除法函数defdiv(x,y):print(x/y)# 自定义调用函数defpow(x,y,func):func(x,y)pow(4,2,add)# 6pow(4,2,sub)# 2pow(4,2,mul)# 8pow(4,2,div)# 2.02.匿名函数回调 add1=lambdax,y:x*y sub1=lambdax,y:x-y mul1=lambdax,y:x*y div1=lambdax,y:x/y pow1=lambdax,y,func:func(x,y)print(pow1(4,2,add1))# 8print(pow1(4,2,sub1))# 2print(pow1(4,2,mul1))# 8print(pow1(4,2,div1))# 2.0