python自定义函数的关键字_python 3 基础之自定义函数

函数

1、什么是函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

用人话来说就是:需要某块代码多次,为了提高编写的效率以及代码的重用,把具有独立功能的代码段组织为一个小模块,需要时就可以直接调用,这就是函数

函数能提高应用的模块性,和代码的重复利用率

Python 定义函数使用 def 关键字,一般格式如下:

def函数名(参数列表):

......

函数体

......return 返回值

def:表示函数的关键字

函数名:函数的名称,日后根据函数名调用函数

函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...

参数:为函数体提供数据

返回值:当函数执行完毕后,可以给调用者返回数据。

其中参数和返回值不是必须的

2、函数的定义和调用

自定义一个函数,求和

#自定义一个函数求两个数 之和

defmy_func(a,b):return a +b#调用函数

f = my_func(3,88)#打印结果

print(f)

运行结果:91

每次调用函数时,函数会从头开始执行,当这个函数中的代码执行完毕,也意味着调用结束

如果函数中执行到了return也会结束函数

3、函数的参数

3.1、实参和形参

#自定义一个函数求两个数 之和

defmy_func(a,b):return a +b#调用函数

f = my_func(3,88)

其中,上面代码,定义时小括号中的参数,用来接收参数用的,称为 “形参”;调用时小括号中的参数,用来传递给函数用的,称为 “实参”

3.2、按调用函数时参数的书写方式 分为:位置参数与关键字参数

位置参数

#自定义一个函数求两个数 之和

defmy_func(a,b):return a +b#调用函数时实参只输入一个

f = my_func(3)

上面代码运行时会报错,因为定义函数时有两个形参,而调用时只输入了一个实参

结论:使用位置参数调用函数 需要注意实参的位置,实参的位置和形参的位置要一一对应,少传一个实参会报错

关键字参数

#定义一个函数

defmy_print(name, age, no):print("我的名字:%s" %name)print("我的年龄:%d" %age)print("学号:%s" %no)#使用关键字参数方式调用函数

my_print(age=23,name='洗涤',no=1)

调用函数的时候使用的是函数的形参名;若关键字参数与位置参数混合使用,需要让位置参数在前 ,关键字参数再后,某个参数使用了关键字参数,后面的都要使用关键字参数

3.3、默认参数(缺省参数)

默认参数即定义时给形参设置一个默认值,后面调用的时候这个参数就可以不写,直接取默认值;也可以后面把一个新的值给到此参数,调用时不给值则默认

#定义一个有默认参数的函数

def my_print(name, no, age=20):print("我的名字:%s" %name)print("我的年龄:%d" %age)print("学号:%s" %no)#调用函数

my_print('小明','007')

运行结果:

我的名字:小明

我的年龄:20

学号:007

此时调用函数时可以不写默认的那个参数,定义有默认参数的时候,需要把默认参数写在最后

3.4、可变参数(可以实现函数定义,以及函数调用时,参数个数不匹配的情况)

待补充..................

4、函数的返回值(return+表达式)

用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None

4.1、单个返回值

#定义一个求和函数

defsmqh(a,b):

re= a +b#有一个返回值

returnre

d= smqh(23,2)print(d)

# 如果有一个return+数值,称之为这个函数有返回值

4.2、多个返回值

defmy_func(score):if score <0:print("您传入的分数有误!!!")#函数的执行提前结束

return

#return后面没有值,什么都不返回,这是性能才考虑到的,因为分数小于0 ,后面的不需要再比较,无意义

#对分数进行判断

if score >= 90:return "优"

elif score >= 80:return "良"

elif score >= 60:return "中"

elif score >=0:return "差"

#他不会执行 因为在前面已经执行了return

print("测试")

return的作用:1、作为函数的返回值

2、执行的函数提前结束(一个函数中可以有多个return语句,只要有一个return语句被执行到,这个函数就会结束了,因此后面的return没有什么用处)

5、函数的嵌套

#写一个函数打印一条横线

defp_one_d():print('-'*20)#打印自定义函数的横线

defp_line(num):for i inrange(num):

p_one_d()#调用函数

p_line(3)

运行结果:

--------------------

--------------------

--------------------

函数p_one_d()嵌套在函数p_line()里面,调用函数p_line()时,p_line()函数多次调用了p_one(),这就是函数的嵌套调用

6、函数的文档说明

看文档说明需要用到python的内置函数help(),用来查看python函数的文档说明

若自定义函数没有文档说明,使用help时默认会打印函数附近的注释

其作用:1、可以在时间过了很久后 快速读懂自己的代码;2、便于工作的交接

格式:help(函数名称)

defsumhe(num1,num2):'''这是求和的

:param num1:数字1

:param num2: 数字2

:return: 返回两个数字相加'''

return num1 +num2

help(sumhe)

==================================================

代码运行结果:

sumhe(num1, num2)

这是求和的

:param num1:数字1

:param num2: 数字2

:return: 返回两个数字相加

7、匿名函数

在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.(匿名函数没有函数名)

匿名函数用关键字lambda定义

7.1、定义普通函数和定义lambda函数的方法和区别:

###########普通函数##############定义一个普通求和函数

defsuma(a,b):return a +bprint(suma(3,4))###########lambda#############

f = lambda a,b: a+b

ret= f(3,2)print(ret)

lambda的意义就是为了简洁的表达函数

解释:lambda a,b : a + b

冒号左边的lambda 相当于函数的名字(),a,b就是函数的形参;冒号右边的内容就是函数的返回值

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果

7.2、把函数当做参数传递

defsanf(a,b,c):print('a = %d' %a)print('b = %d' %b)print('result:%d' % c(a,b))#c是一个函数,当做参数来用

f = lambda a,b : a +b

sanf(1, 3, f)

运行结果:

a = 1

b = 3

result:4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值