Python基础9(返回值及参数)
函数
使用函数顺序
1 s = 'qqsssqq' # 1 2 def my_len(s): # 2 :定义函数声明变量 my_len(s) 为自定义函数 3 i = 0 # 4 4 for k in s: # 5 5 i += 1 6 print(i) # 6 7 return i # 7 8 my_len(s) # 3:函数调用
返回值 return
1 s = "dsfadsfsadsa" 2 def my_len(): 3 i = 0 4 for k in s: 5 i += 1 6 # print(i) 7 return i # 返回值 8 length = my_len() 9 print(length)
返回值问题
返回值三种情况
1》不写返回值
不写return
只写return :结束一个函数
写return none ---- 不常用 返回none
2》返回一个值
可以返回任意数据类型
只要返回了就可以接收到
如果一个程序有多个return只执行第一个return
3》返回多个值
多个返回值用多个变量接受:有多少返回值就用多少变量接受,不能多也不能少
1 def func(): 2 return 1, 2, 3 # 多个值由多个变量接受 3 s1, s2, s3 = func() 4 print(s1, s2, s3)
返回多个值用一个变量接收,得到一个元组
1 # print(s1, s2, s3) 2 def func(): 3 return 1, 2, 3 4 s1 = func() 5 print(s1)
传递参数传参
1 def func(s): # 自定义函数只需要0个参数,接收参数 形式参数 形参 2 i = 0 3 for k in s: 4 i += 1 5 return i # 返回值 6 # s = "384" 7 # ret = func(s) # 传递参数,传参 8 # print(ret) 9 ret = func([1, 2, 3, 4, 5]) # 传递参数 传参 实参:实际参数 10 print(ret)
参数
参数语法
没有参数:定义函数和调用函数时括号里什么都不写内容
有一个参数:传什么就是什么
有多个参数:
1》位置参数:
1 def func(a, b): # 位置参数 a = 20 b = 30 2 s = a + b 3 return s 4 r = func(20, 30) 5 print(r)
站在实参角度上:
按照位置传参 :func(20, 30)
按照关键字参 : func(a = 20, b = 30)
混着用可以(注意):但是必须先按照位置传参,再按关键词传参不能给同一个变量传多个值 func(20, b = 30)
站在形参的角度上:
位置参数:必须传,且有几个参数传几个值
默认参数:可以不传,如果不传就使用默认参数,如果传就用传的参数
1 def func(a,b = '中国人'): 2 s = a + b 3 return s 4 r = func("李四") # 不传使用默认的b=中国人 参数 5 print(r) 6 s1 = func("王五", "日本人") # 传使用传递的参数 7 print(s1) 8 s2 = func(b="kk", a='rr') 9 print(s2)
参数定义顺序:必须先定义位置参数,后定义默认参数
函数嵌套函数
1 # 函数嵌套运行方法 2 def func(l1): # 1 3 for i in l1: # 5 4 print(i) # 6 5 def func2(l1): # 2 6 func(l1) # 4 7 for i in l1: # 7 8 print(i) # 8 9 func2([1, 2, 3, 4, 5, 6]) # 3
动态函数:可以接收任何一个参数,惯用 *args
1 def sum(*args): # 可以接受任何一个参数,惯用*args 2 n = 0 3 for i in args: 4 n += i 5 return n 6 print(sum(1, 2, 3, 4, 5))
只允许接收任意多个关键字参数 **kwargs
1 def func(**kwargs): 2 return kwargs 3 a = func(a = 1, b = 3, c =6) 4 print(a) # 输出由 键 a 值 1 ..... 组成的字典
动态函数另一种传参方式
1 func(*args): # 组合 2 return args 3 s = func(1, 2, 3, 4, 5) 4 print(s) 5 l = [1, 2, 3, 4, 5, 6] 6 print(func(*l)) # 打散 站在实参的角度上给一个序列加上星号是将这个序列按照顺序打散,而站在形参的角度上,给变量加上星就是组合所有传来的值
截图

**kwargs另一种传参方式
1 def func(**kwargs): # 组合 2 return args 3 s = func(a = 1,b = 2) 4 print(s) 5 l = {"a": 1, "b": 2} 6 print(func(**l)) # 打散 站在实参的角度上给一个序列加上星号是将这个序列按照顺序打散,而站在形参的角度上,给变量加上星就是组合所有传来的值
截图

函数注释
# 函数注释 def func(): ''' 这个函数实现什么功能 参数1: 参数2: ...... return:是字符串或者列表长度 ''' pass

浙公网安备 33010602011771号