python函数
1、函数
(1)定义:
完成特定功能的一个语句组,通过调用函数名来完成语句组的功能。定义一个函数,可以在任何需要它的地方调用
(2)分类:
自定义函数:用户自己编写的
内置函数: Python自带的函数,如len、sum等
(3)函数定义
使用def语句
def <name>(<parameters>):
<body>
函数名<name>:和变量的命名规范一致
参数列表<parameters>:是调用函数时传递给它的值(可以由多个,一个,或者零个参数组成,当有多个参数时,各个参数用逗号分隔)
参数个数大于等于零,多个参数由逗号分隔
例子:数字是执行顺序
s='孙雪是我老婆' 1 def my_len(): #定义函数并声明函数 2 i = 0 4 for j in s: 5 i+=1 print(i) 6 print(my_len()) #调用函数 3
结果:6
none
没有返回值,只是单纯的打印
2、返回值
返回值分为三种
无返回值----无返回值的情况下返回none
只写return
return none ---不常用
不写return
返回一个值
可以返回任何数据类型
只要返回就可以接收到
一个函数中有多个return时,只执行第一个
返回多个值
有多个返回值用多个变量接受,有多少个返回值就有多少个变量
用一个变量接受,返回的是一个元组
(1)、无返回值
只写return
s='孙雪是我老婆' def my_len(): i = 0 for j in s: i+=1 return print(my_len()) 结果:none
不写return
s='孙雪是我老婆' def my_len(): i = 0 for j in s: i+=1 print(my_len()) 结果:none
(2)返回一个值
s='孙雪是我老婆' def my_len(): i = 0 for j in s: i+=1 return i print(my_len()) 结果:6
(3)返回多个值
用一个变量接收,返回的是一个元组
s='孙雪是我老婆' def my_len(): i = 0 for j in s: i+=1 return i,'老婆' a=my_len() print(a)
结果:(6, '老婆')
用对应的变量接受
s='孙雪是我老婆' def my_len(): i = 0 for j in s: i+=1 return i,'老婆' a,b=my_len() print(a,b)
结果:6 老婆
3、参数
定义参数时,先定义位置参数再定义动态参数,再定义默认参数
优先级分为两种情况
位置参数>动态参数(*args)>默认参数
位置参数>默认参数>动态参数(**kwargs)
1、概念
没有参数,定义的函数只能运用到一个事件中,要想被其他的函数调用,就要有参数
参数可分为形式参数和实际参数
形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数。
实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数。
例如:
def my_len(k): # k用来接受传过来的值,叫接收参数,只是一个形式,也叫形参 i = 0 for j in k: i+=1 return i s='孙雪爱吃虾' ret=my_len(s) #这个s是向函数传递值,叫传递参数,也是实际的参数,也叫实参
2、站在实参的角度
(1)按照位置传参
(2)按照关键字传参
(3)混着用也可以,但是必须先按位置传参,再按关键字传参,不能给一个参数传多个值
(4)站在实参的角度,给一个序列前加上*,就是对这个序列按照顺序打散,加上**,就是把字典按照顺序打散
例子:
1、按位置传参
def jisuanqi(a,b): sum=a+b return sum res=jisuanqi(2,4) #把2传给了啊a,把4传给了b print(res)
结果:6
2、按关键字传参
def jisuanqi(a,b): sum=a+b return sum res=jisuanqi(b=4,a=1) #通过形参的参数变量赋值来传参 print(res)
结果:5
3、混着用,但是必须先按位置传参,再按关键字传参
def jisuanqi(a,b,c): sum=a+b+c return sum res=jisuanqi(4,3,c=1) #把传c=1放在3或者4前面,都会报错 print(res)
结果:8
3、站在形参的角度
(1)位置参数
(2)默认参数:默认参数在没有传参数值的时候用默认的值,有传参数的值的时候用传的值
(3)动态参数:可以接受任意多个参数值
*args :接收按照位置传参的值,组成一个元组
**kwargs :接收按照关键字传参的值,组成一个字典
(4)站在形参的角度,在变量前加上*,就是把传来的参数进行按照顺序组合
*args >默认参数>**kwargs
默认参数例子:
【1】默认参数没有传参数值
def jisuanqi(a,b=2): sum=a+b return sum res=jisuanqi(4) print(res)
结果:6
【2】默认参数有传参数值
def jisuanqi(a,b=2): sum=a+b return sum res=jisuanqi(4,1) print(res)
结果:5
动态参数例子:
def my_sum(*args): sum=0 for i in args: sum+=i return sum res=my_sum(1,2,3,4) print(res)
结果:10
4、函数的注释
def my_sum(*args): ''' 这里写函数的注释,主要写这个函数的功能 ''' sum=0 for i in args: sum+=i return sum
浙公网安备 33010602011771号