适用于初学者的Python基础(七)

接着上一篇中函数部分

1.函数的类型

函数是根据有无参数,有没有返回值,相互进行组合,一共有四种

  • 无参数,无返回值
  • 无参数,有返回值
  • 有参数,无返回值‘
  • 有参数,有返回值
    代码举例:
    在这里插入图片描述
    在这里插入图片描述
    小结:
  • 函数根据有没有参数,有没有返回值可以相互组合
  • 定义函数时,是根据实际的功能需求来设计的,所以不同的开发人员编写的函数类型各不相同

2.函数的嵌套调用

举例说明:
在这里插入图片描述
结果为:
在这里插入图片描述
由此我们可以得出:
如果函数 A 中,调用了另外一个函数 B,那么先把函数 B 中的任务都执行完毕之后才 会回到上次 函数 A 执行的位置。
小结:
一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用

3.函数应用:打印图形和数学计算

思考题1:

  • 写一个函数打印一条横线
  • 打印自定义行数的横线
    在这里插入图片描述
    思考题2:
  • 写一个函数求三个数的和
  • 写一个函数求三个数的平均值
    在这里插入图片描述

4.局部变量和全局变量

局部变量:在函数体中定义的变量,在函数执行完毕后,变量自动撤销,不存储在内存中声明周期仅在函数体内部
全局变量:不仅可以在函数体中调用,还可以在外部程序中调用

局部变量代码实现:
在这里插入图片描述
全局变量代码是实现:
在这里插入图片描述
局部变量和全局变量的作用域:
在这里插入图片描述
全局变量的修改:使用global关键字
在这里插入图片描述
小结1:

  • 在函数外边定义的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用 global 进行声明,否则出错
  • 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不 压地头蛇

全局变量的更改:
在这里插入图片描述
小结2:

  • 在函数中不使用 global 声明全局变量时不能修改全局变量的本质是不能修改全局变量 的指向,即不能将全局变量指向新的数据。
  • 对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用 global 时无法 修改全局变量(例如元组、字符串)
  • 对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用 global 时也可修 改全局变量。(例如列表、字典)

函数的返回值:
我们想一下,在python中我们可不可以返回多个值?
在这里插入图片描述
函数的参数:
<1>缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
在这里插入图片描述
在这里插入图片描述
<2>不定长参数
有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时 不会命名。
基本的语法:
在这里插入图片描述
加了星号(*)的变量 args 会存放所有未命名的变量参数,args 为元组;而加**的变量 kwargs 会存放命名参数,即形如 key=value 的参数, kwargs 为字典
在这里插入图片描述
<3>引用传参
可变类型与不可变类型的变量分别作为函数参数时,会有什么不同吗?
Python 有没有类似 C 语言中的指针传参呢?
在这里插入图片描述
Python 中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所 以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参 数变量。

5.递归函数

什么是递归函数?
如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
递归调用时并不是每次都有返回值
举个小案例:
计算阶乘n! = 123*4…*n
在这里插入图片描述

6.匿名函数

lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
lambda 函数的语法只包含一个语句,如下:

在这里插入图片描述
在这里插入图片描述
Lambda 函数能接收任何数量的参数但只能返回一个表达式的值。
匿名函数不能直接调用 print,因为 lambda 需要一个表达式。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值