一、.函数:
如果检测一个元素的长度用len非常简单,也可以写个循环来做。
s = ‘asd‘ def my_len(): i = 0 for k in s: i += 1 print(i) my_len()
二、.返回值:
如果print打印这个函数,结果返回None,如果想要有返回值的话就要用return i。
在函数里遇到return直接退出函数。
return返回值的3种情况: 遇到return直接退出函数
没有返回值: 返回None
1.不写return
2.只写return
3.return None
返回1个值:
1.可以返回任何数据类型
2.只要返回就可以接收到
3.如果在一个程序中有多个return,那么只执行第一个return就退出函数
返回多个值:
1.用多个变量接收:有多少返回值就用多少变量接收
2.用一个变量接收:得到的是一个元祖
三、传参函数
还是打印元素长度,但是元素不固定,可以自己输入就需要用到传参了。
def func(s): #行参 i = 0 for j in s: i += 1 return i print(func(‘asdf‘)) #实参
通过s传入参数。
参数:
没有参数:定义函数和调用函数时括号里为空。
有一个参数:传什么就是什么
有多个参数:位置参数
参数分类:
行参:
顺序:位置参数、*args、默认参数、**kwargs
位置参数:直接定义参数
默认参数(关键字参数):参数名 = ‘默认的值’ #如果实参里也定义了,实参优先
动态参数:可以接受任意多个参数
#多个位置参数:*args 接收按照位置传参的值,组成一个元祖。
#多个默认参数:**kwargs 接收按照默认传参的值,组成一个字典。
实参:
按照位置传参:位置参数需要几个就传几个值,*args无限传。
按照关键字传参:如果行参有默认参数可以不传值,传了的按照实参的值运行,有**kwargs可以无限传。
位置参数
def func(x,y): if x > y: print(x) else: print(y) func(3,2)
默认参数
def func(x=1,y=4): if x > y: print(x) else: print(y) func()
动态传参
def func1(*args): print(args) func1(1,2,3) def func2(**kwargs): print(kwargs) func2(a = 1,b = 2,c = 3)
动态参数另一种传参方式:传入列表或字典。
def func1(*args): print(args) func1(1,2,3) l = [1,2,3] func1(*l) def func2(**kwargs): print(kwargs) func2(a = 1,b = 2,c = 3) d = {‘a‘:1,‘b‘:2,‘c‘:3} func2(**d)
四、函数注释:
def func():
‘‘‘
这个函数实现了什么功能
参数1:
参数2:
:return:
‘‘‘