函数,把具有独立功能的代码块封装为一个小模块,在需要的时候可直接调用,不用反复重复输入,简化工作量,更方便代码阅读。
python函数一、函数的参数,具有通用性,如果数据采用相同的处理逻辑,使用函数能够适应更多的数据
形参:定义函数时,小括号中的参数,是用来接收参数使用的,在函数内部作为变量使用
实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部使用的。
二、函数的return返回值
1)在程序开发中,会希望一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
2)返回值是函数完成工作后,最后给调用者的一个结果
3)在函数中使用return关键字可以返回结果
4)调用函数一方,可以使用变量来接收函数的返回结果
5)return返回结果后,后续的代码都不会被执行
三、函数案例演示:
1)手工指定随机数的范围和个数,生成20个10-50之间的随机数
2)通过手工指定参数名称,生成10个10-99之间的随机数
3)按照形参默认值,生成随机数
操作代码:代码缩进请参考演示图
importrandom
defbuild_array(start_number:int=,end_number:int=,number=10):
#功能描述:生成若干个固定范围的整数集合
#:paramstart_number:指定整数范围的起始值
#:paramend_number:指定整数范围的结束值
#:paramnumber:生成的数量
#:return:整数的集合
number_list=[]
foriinrange(number):
number_list.append(random.randint(start_number,end_number))
#返回
returnnumber_list
if__name__==__main__:
#调用的方法01:调用的标准做法——实参和形参必须要一一对应
print(build_array(10,50,20))
#调用的方法02:调用的时候指明参数的名称方式,这种情况下,调用的顺序可以和函数的顺序不一致!
print(build_array(number=10,end_number=99,start_number=10))
#调用的方法03:按照形参默认值
print(build_array())
执行结果:
函数的参数四、函数的不定长参数
在一个函数中,如果参数数量不确定的情况下,可以使用不定长参数
defsum_of_number(*args):
#args:为不定长参数
示例01:代码缩进请参考演示图
defsum_of_number(*args):
功能介绍:求一组数字之和
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:paramargs:提供的数字元组
:return:所有的数之和
sum=0
foriinargs:
sum+=i
#返回
returnsum
if__name__==__main__:
#调用:提供了一个参数
print(sum_of_number(11))
#调用:提供了三个参数
print(sum_of_number(11,22,33))
#调用:提供了九个参数
print(sum_of_number(11,22,33,44,55,66,77,88,99))
#调用:提供了一个元组
tuple01=(11,22,33,44,55,66)
print(sum_of_number(*tuple01))
#调用:提供了一个list
list01=(11,22,33,44,55,66)
print(sum_of_number(*list01))
特别注意:当前带有不定参数的函数传递列表或者字典时,切记,一定要解包否则报错
函数案例示例02:代码缩进请参考演示图
defsum_of_number(*args):
功能介绍:求一组数字之和
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:paramargs:提供的数字元组
:return:所有的数之和
sum=0
foriinargs:
sum+=i
#返回
returnsum
defsum_number(num01=,num02=,*args):
print(num01:,num01)
print(num02:,num02)
print(不定长参数:,args)
if__name__==__main__:
#调用:提供了一个参数
#多参数
sum_number()
sum_number(11)
sum_number(11,22)
sum_number(11,22,33)
总结:如果函数的方法中有普通参数和不定长参数的时候,不定长参数一定要放在最后
在调用的时候先把实参匹配普通参数,普通参数全部匹配后,在匹配不定长参数!
函数的不定长参数示例03:不定长的字典类型使用**kwargs,代码缩进请参考演示图
defsum_of_result(**kwargs):
sum=0
forkeyinkwargs:
sum+=kwargs[key]
returnsum
if__name__==__main__:
print(sum_of_result(语文=82,数学=90,英语=67))
print(sum_of_result(语文=56,数学=67))
print(sum_of_result(语文=56,数学=67,外语=79,物理=87,化学=98))
dict01={语文:56,数学:67,外语:79,物理:87,化学:98}
print(sum_of_result(**dict01))
函数的演示示例04:代码缩进请参考演示图
defsum_of_result(num01,*args,**kwargs):
print(num01)
print(args)
print(kwargs)
#如果有普通参数,不定长的元组,不定长的字典,顺序:先普通参数-不定长元组-不定长字典
sum_of_result(,,,,,语文=82,数学=90,外语=67)
#匹配:num01-args-,,,,kwargs-语文=82,数学=90,外语=67
python案例五、函数的返回值
Return用来返回函数的直接结果,用来返回一个值,返回多个值如何处理呢?
示例:生成若干个整数的集合,求最大数、最小数、元素之和、元素的平均数
代码缩进请参考演示图
importrandom
defbuild_array(start_number,end_number,number):
#功能描述:生成若干个固定范围的整数集合
#:paramstart_number:指定整数范围的起始值
#:paramend_number:指定整数范围的结束值
#:paramnumber:生成的数量
#:return:整数的集合
number_list=[]
foriinrange(number):
number_list.append(random.randint(start_number,end_number))
#返回
returnnumber_list
defsum_of_list(list01:list):
功能描述:求所有的list元素之和
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:paramlist01:要求的list名称
:return:返回所有元素之和
sum=0
foriinlist01:
sum+=i
#返回sum
returnsum
defmax_of_list(list01:list):
max_number=list01[0]
foriinlist01:
ifimax_number:
max_number=i
returnmax_number
defmin_of_list(list01:list):
min_number=list01[0]
foriinlist01:
ifimin_number:
min_number=i
returnmin_number
defget_result_01(list01:list):
result_list=[]#第一个元素就是最大值,第二个就是最小值,第三个元素就是和
max_result=list01[0]
min_result=list01[0]
sum_result=0
#求最大值,最小值,求和
foriinlist01:
ifimax_result:max_result=i
ifimin_result:min_result=i
sum_result+=i
result_list.append(max_result)
result_list.append(min_result)
result_list.append(sum_result)
#返回一个集合
returnresult_list
defget_result_02(list01:list):
result_list=[]#第一个元素就是最大值,第二个就是最小值,第三个元素就是和
max_result=list01[0]
min_result=list01[0]
sum_result=0
#求最大值,最小值,求和
foriinlist01:
ifimax_result:max_result=i
ifimin_result:min_result=i
sum_result+=i
return(max_result,min_result,sum_result)
if__name__==__main__:
#生成集合
list_number=build_array(number=10,end_number=,start_number=)
#生成的集合
print(生成的集合为:,list_number)
#方法01:最大值,最小值,求和
result_list=get_result_01(list_number)
print(最大值:,result_list[0])
print(最小值:,result_list[1])
print(所有元素之和:,result_list[2])
#方法02:最大值,最小值,求和
max_result,min_result,sum_result=get_result_02(list_number)
print(最大值:,max_result)
print(最小值:,min_result)
print(所有元素之和:,sum_result)
执行结果:
函数案例每天进步一点点,跟着教头学Python,让代码跑起来吧!