Python基础知识储备,函数的参数和返回值的用法,实操演示

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

python函数

一、函数的参数,具有通用性,如果数据采用相同的处理逻辑,使用函数能够适应更多的数据

形参:定义函数时,小括号中的参数,是用来接收参数使用的,在函数内部作为变量使用

实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部使用的。

二、 函数的return返回值

1)在程序开发中,会希望一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理

2)返回值是函数完成工作后,最后给调用者的一个结果

3)在函数中使用 return 关键字可以返回结果

4)调用函数一方,可以使用变量来接收函数的返回结果

5)return 返回结果后,后续的代码都不会被执行

三、函数案例演示

1)手工指定随机数的范围和个数,生成20个10-50之间的随机数

2)通过手工指定参数名称,生成10个10-99之间的随机数

3)按照形参默认值,生成随机数

importrandom

defbuild_array(start_number:int = 100, end_number:int = 200, number=10):

# 功能描述:生成若干个固定范围的整数集合

# :param start_number: 指定整数范围的起始值

# :param end_number: 指定整数范围的结束值

# :param number: 生成的数量

# :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 = 100, num02 = 200, *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(100, 200, 300, 400, 500, 语文=82, 数学=90, 外语=67)

# 匹配:num01->100 args->200,300,400,500, kwargs->语文=82, 数学=90, 外语=67

函数参数

五、函数的返回值

Return 用来返回函数的直接结果,用来返回一个值,返回多个值如何处理呢?

示例:生成若干个整数的集合,求最大数、最小数、元素之和、元素的平均数

importrandom

defbuild_array(start_number,end_number,number):

# 功能描述:生成若干个固定范围的整数集合

# :param start_number: 指定整数范围的起始值

# :param end_number: 指定整数范围的结束值

# :param number: 生成的数量

# :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:

ifi > max_number:

max_number = i

returnmax_number

defmin_of_list(list01:list):

min_number = list01[0]

foriinlist01:

ifi

min_number = i

returnmin_number

defget_result_01(list01:list):

result_list = [] # 第一个元素就是最大值,第二个就是最小值,第三个元素就是和

max_result = list01[0]

min_result = list01[0]

sum_result = 0

# 求最大值,最小值,求和

foriinlist01:

ifi > max_result:max_result = i

ifi

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:

ifi > max_result:max_result = i

ifi

sum_result += i

return(max_result,min_result,sum_result)

if__name__=="__main__":

# 生成集合

list_number = build_array(number=10, end_number=200, start_number=100)

# 生成的集合

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191024A06MAZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券