Python基础知识储备,函数的参数和返

北京荨麻疹医院专家 http://m.39.net/pf/a_9186091.html

函数,把具有独立功能的代码块封装为一个小模块,在需要的时候可直接调用,不用反复重复输入,简化工作量,更方便代码阅读。

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,让代码跑起来吧!




转载请注明:http://www.aierlanlan.com/grrz/2469.html