python中avg函数_python学习系列13——函数

(一)函数的定义

代码:

1 defmy_max(x, y) :2 #定义一个变量z,该变量等于x、y中较大的值

3 z = x if x > y elsey4 #返回变量z的值

5 returnz6

7 #定义一个函数,声明一个形参

8 defsay_hi(name) :9 print("===正在执行say_hi()函数===")10 return name + ",您好!"

(二)函数的调用

代码:

1 a = 6

2 b = 9

3 #调用my_max()函数,将函数返回值赋值给result变量

4 result = my_max(a , b) #①

5 print("result:", result)6 #调用say_hi()函数,直接输出函数的返回值

7 print(say_hi("孙悟空")) #②

结果:

result: 9

===正在执行say_hi()函数===孙悟空,您好!

(三)值传递和引用传递

Python中,根据实际参数的类型不同,函数参数的传递方式可分为 2 种,分别为值传递和引用(地址)传递:

值传递:适用于实参类型为不可变类型(字符串、数字、元组);

引用(地址)传递:适用于实参类型为可变类型(列表,字典);

值传递和引用传递的区别是,函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;而函数参数继续引用传递后,改变形参的值,实参的值也会一同改变。

代码:

1 defdemo(obj) :2 obj +=obj3 print("形参值为:",obj)4 print("-------值传递-----")5 a = "C语言中文网"

6 print("a的值为:",a)7 demo(a)8 print("实参值为:",a)9 print("-----引用传递-----")10 a = [1,2,3]11 print("a的值为:",a)12 demo(a)13 print("实参值为:",a)

结果:

-------值传递-----a的值为: C语言中文网

形参值为: C语言中文网C语言中文网

实参值为: C语言中文网-----引用传递-----a的值为: [1, 2, 3]

形参值为: [1, 2, 3, 1, 2, 3]

实参值为: [1, 2, 3, 1, 2, 3]

(四)参数

(1)位置参数

在调用函数,指定的实际参数的数量,必须和形式参数的数量一致(传多传少都不行)。

(2)关键字参数

关键字参数是指使用形式参数的名字来确定输入的参数值。

代码:

1 #定义一个函数

2 defgirth(width , height):3 print("width:", width)4 print("height:", height)5 return 2 * (width +height)6 #传统调用函数的方式,根据位置传入参数

7 print(girth(3.5, 4.8))8 #根据关键字参数来传入参数

9 print(girth(width = 3.5, height = 4.8))10 #使用关键字参数时可交换位置

11 print(girth(height = 4.8, width = 3.5))12 #部分使用关键字参数,部分使用位置参数

13 #位置参数必须放在关键字参数之前

14 print(girth(3.5, height = 4.8))

(3)默认参数

python允许为参数设置默认值,即在定义函数时,直接给形式参数指定一个默认值。

代码:

1 #为两个参数指定默认值

2 def say_hi(name = "孙悟空", message = "欢迎来到C语言中文网"):3 print(name, ", 您好")4 print("消息是:", message)5 #全部使用默认参数

6 say_hi()7 #只有message参数使用默认值

8 say_hi("白骨精")9 #两个参数都不使用默认值

10 say_hi("白骨精", "欢迎学习Python")11 #只有name参数使用默认值

12 say_hi(message = "欢迎学习Python")

结果:

孙悟空 , 您好

消息是: 欢迎来到C语言中文网

白骨精 , 您好

消息是: 欢迎来到C语言中文网

白骨精 , 您好

消息是: 欢迎学习Python

孙悟空 , 您好

消息是: 欢迎学习Python

(五)逆向参数传递

所谓逆向参数收集,指的是在程序己有列表、元组、字典等对象的前提下,把它们的元素“拆开”后传给函数的参数。逆向参数收集需要在传入的列表、元组参数之前添加一个星号,在字典参数之前添加两个星号。

代码:

1 deftest(name, message):2 print("用户是:", name)3 print("欢迎消息:", message)4 my_list = ['小明', '欢迎来C语言中文网']5 test(*my_list)

结果:

用户是: 小明

欢迎消息: 欢迎来C语言中文网

(六)函数返回多个值

代码:

1 defsum_and_avg(list):2 sum =03 count =04 for e inlist:5 #如果元素e是数值

6 if isinstance(e, int) orisinstance(e, float):7 count += 1

8 sum +=e9 return sum, sum /count10

11

12 my_list = [20, 15, 2.8, 'a', 35, 5.9, -1.8]13

14 #获取sum_and_avg函数返回的多个值,多个返回值被封装成元组

15 tp = sum_and_avg(my_list) #①

16 print(tp)17

18 #使用序列解包来获取多个返回值

19 s, avg = sum_and_avg(my_list) #②

20 print(s)21 print(avg)

结果:

(76.9, 12.816666666666668)76.9

12.816666666666668

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程概述教会学员快速学会python数据分析,覆盖python基础,pandas,seaborn,matplotlib,SQL,sqlite,lambda等知识。课程是数据科学家居家必备的军火库。课程定期更新,大部分视频分辨率支持2K超清,学员可以看清每一行代码。 适合人群python数据科学从业人员,数据分析师,统计 学习计划和方法1.每天保证1-2个小时学习时间,预计7-15天左右可以学习完整门课程(不同基础学生时间差异较大)。2.每节课的代码实操要保证,建议不要直接复制粘贴代码,自己实操一遍代码对大脑记忆很重要,有利于巩固知识。3.第二次学习时要总结上一节课内容,必要时做好笔记,加深大脑理解。4.不懂问题要罗列出来,先自己上网查询,查不到的可以咨询老师。 作者介绍Toby,持牌照金融公司担任模型验证专家,国内最大医药数据心数据挖掘部门负责人!和清华大学出版社,重庆儿科医院,科院教授,赛柏蓝保持慢病数据挖掘项目合作!管理过欧美日印巴西等国外药典数据库,马丁代尔数据库,FDA溶解度数据库,临床试验数据库,WHO药物预警等数据库。原创公众号(python风控模型) 课程概述教会学员快速学会python数据分析,覆盖python基础,pandas,seaborn,matplotlib,SQL,sqlite,lambda等知识。课程是数据科学家居家必备的军火库。课程定期更新,大部分视频分辨率支持2K超清,学员可以看清每一行代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值