Python3-函数初解03

本文详细介绍了Python3的函数概念,包括函数的定义与调用、参数、返回值、函数类型和应用。讲解了如何定义带有参数和返回值的函数,以及函数的文档说明和LEGB原则。还探讨了匿名函数(lambda函数)的使用和函数的嵌套调用,是Python新手学习函数的好资料。
摘要由CSDN通过智能技术生成

一、函数

函数介绍

什么是函数

请看如下代码:

print "                            _ooOoo_  "
print "                           o8888888o  "
print "                           88  .  88  "
print "                           (| -_- |)  "
print "                            O\\ = /O  "
print "                        ____/`---'\\____  "
print "                      .   ' \\| |// `.  "
print "                       / \\||| : |||// \\  "
print "                     / _||||| -:- |||||- \\  "
print "                       | | \\\\\\ - /// | |  "
print "                     | \\_| ''\\---/'' | |  "
print "                      \\ .-\\__ `-` ___/-. /  "
print "                   ___`. .' /--.--\\ `. . __  "
print "                ."" '< `.___\\_<|>_/___.' >'"".  "
print "               | | : `- \\`.;`\\ _ /`;.`/ - ` : | |  "
print "                 \\ \\ `-. \\_ __\\ /__ _/ .-` / /  "
print "         ======`-.____`-.___\\_____/___.-`____.-'======  "
print "                            `=---='  "
print "  "
print "         .............................................  "
print "                  佛祖镇楼                  BUG辟易  "
print "          佛曰:  "
print "                  写字楼里写字间,写字间里程序员;  "
print "                  程序人员写程序,又拿程序换酒钱。  "
print "                  酒醒只在网上坐,酒醉还来网下眠;  "
print "                  酒醉酒醒日复日,网上网下年复年。  "
print "                  但愿老死电脑间,不愿鞠躬老板前;  "
print "                  奔驰宝马贵者趣,公交自行程序员。  "
print "                  别人笑我忒疯癫,我笑自己命太贱;  "
print "                  不见满街漂亮妹,哪个归得程序员?"

运行后的现象:

佛祖镇楼
在这里插入图片描述
想一想:

如果一个程序在不同的地方需要输出“佛祖镇楼”,程序应该怎样设计?

if 条件1:
    输出‘佛祖镇楼’

...(省略)...

if 条件2:
    输出‘佛祖镇楼’

...(省略)...

如果需要输出多次,是否意味着要编写这块代码多次呢?

小结:
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

函数的定义与调用

<1>定义函数

定义函数的格式如下:

  def 函数名():
        代码


# 定义一个函数,能够完成打印信息的功能
  def printInfo():
      print '------------------------------------'
      print '         人生苦短,我用Python'
      print '------------------------------------'

<2>调用函数

定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它

调用函数很简单的,通过 函数名() 即可完成调用

demo:

# 定义完函数后,函数是不会自动执行的,需要调用它才可以
printInfo()

函数的文档说明

 def test(a,b):
   "用来完成对2个数求和"
  print("%d"%(a+b))
 test(11,22)
33

当同事或者自己需要查看 函数(test)的说明时:
(也可以按住键盘CTRL 然后鼠标点击目标函数)

help(test)  #能够看到test函数的相关说明
Help on function test in module __main__:
test(a, b)
    用来完成对2个数求和

函数的参数

思考一个问题,如下:

现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?

 def add2num():
       a = 11
       b = 22
       c = a+b
       print c

没错,在我们想要调用这个函数的时候,发现根本无从下手,不知道怎么使用这个函数。

为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数

<1> 定义带有参数的函数

示例如下:

  def add2num(a, b):  #a,b即这个函数的参数
        c = a+b
        print c

<2> 调用带有参数的函数

以调用上面的add2num(a, b)函数为例:

def add2num(a, b):
        c = a+b
        print c

    add2num(11, 22) #调用带有参数的函数时,需要在小括号中,传递数据

调用带有参数函数的运行过程:
在这里插入图片描述

<3> 调用函数时 参数的顺序

#定义函数==============
def test(a,b):
		print(a,b)
——————调用示例——————
 test(1,2)	#调用
1 2	#输出
——————调用示例——————
 test(b=1,a=2) #调用
2 1 #输出
 ——————调用示例——————
test(b=1,2) #调用后报异常
  File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument

小结

定义时小括号中的参数,用来接收参数用的,称为 “形参
调用时小括号中的参数,用来传递给函数用的,称为 “实参

二、返回值

<1>“返回值”介绍

现实生活中的场景:

去自动售货机买饮料,自动售货只卖3种价格的饮料,投币口只支持5元、10元、20元这3种规格的纸币

在这个例子中:
函数:售货机
形参:售货机投币口
实参:3种不同规格的纸币
返回值:对应价格的饮料
你往售货机里放不同面额的纸币,售货机的取货口会落下相应规格的饮料,这就完成了一个完整的函数调用。

开发中的场景:

定义了一个函数,完成了获取室内温度,想一想是不是应该把这个结果给调用者,只有调用者拥有了这个返回值,才能够根据当前的温度做适当的调整

综上所述:

  • 所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果

<2>带有返回值的函数

想要在函数中把结果返回给调用者,需要在函数中使用return

如下示例:

    def add2num(a, b):
        c = a+b
        return c

或者

    def add2num(a, b):
        return a+b

<3>保存函数的返回值

如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存

保存函数的返回值示例如下:

    #定义函数
    de
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值