Python3笔记⑤——函数入门

内置函数

概述

编程语言中的函数是为了让程序的逻辑更加清晰,一般把程序中可以成为一个功能的部分划为一个函数以便重复使用。

  • 接受0个/多个参数
  • 返回0个/多个值
  • 定义和内部实现
  • 提高应用的模块性
  • 提高代码复用率

在这里插入图片描述

常见的内置函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数帮助

内置函数和部分第三方模块的函数可以使用help(fun)的方式查看帮助
在这里插入图片描述

自定义函数

函数定义

函数需要注意的几个点:

  • 参数列表可以为空
  • 返回值可选
  • 函数体必须

在这里插入图片描述
函数中几个要素:

  • def语句
  • 函数名
  • 括号、括号中的参数
  • 冒号
  • 缩进块中编写函数体
  • return语句返回值
  • 函数名([参数值])调用

在这里插入图片描述

全局变量

return返回值可以在函数外赋值和访问
在这里插入图片描述
不含return返回值,则函数内的变量无法在函数外访问
在这里插入图片描述
加入global关键字,函数内的变量可以在函数外访问
在这里插入图片描述

局部函数

局部函数的几个要点:

  • 局部函数放在函数体内定义
  • 局部函数对外部是隐藏的
  • 局部函数只能在其封闭函数内有效

在这里插入图片描述
局部函数内的变量也会屏蔽它所在函数内的局部变量
在这里插入图片描述
nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量
在这里插入图片描述

多值返回

  • Python函数可以返回多个值
  • 多值自动封装为元组
  • Python 提供序列解包功能,自动接收返回值

在这里插入图片描述

函数递归

  • 在一个函数体内调用它自身
  • 包含隐式循环

在这里插入图片描述

函数传参

传参机制

形参和实参

形参是函数定义中括号的参数,实参是函数调用中传入的实际参数。
在这里插入图片描述

值传递和引用传递
  • 值传递:适用于实参为不可变类型(字符串、数字、元组)
  • 引用传递:适用于实参为可变类型(列表,字典)

在这里插入图片描述
值传递形参变化不会影响实参,引用传递形参值改变实参也会变

  • 值传递

在这里插入图片描述
主栈区中a、b变量存储示意图
在这里插入图片描述
主栈区的变量作为参数值传入swap()函数后存储示意图
在这里插入图片描述
swap()函数中a、b交换之后的存储示意图
在这里插入图片描述

  • 引用传递

在这里插入图片描述
主程序创建了字典对象后存储示意图
在这里插入图片描述
字典传入swap()函数后存储示意图
在这里插入图片描述

位置参数

  • 实参和形参数量必须一致
  • 实参和形参位置必须一致

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关键字参数

  • 使用形式参数名来确定输入的参数值
  • 可与位置参数混合使用
  • 位置参数必须放在关键字参数之前

在这里插入图片描述

默认参数

  • 函数定义期间赋予参数
  • 可与位置参数/关键字参数混合使用
  • 默认参数必须在非默认值参数之后

在这里插入图片描述

可变参数

*param接受任意多个实际参数,并将其放到一个元组中
在这里插入图片描述
如果第一个参数就是可变的参数,则调用时候后面参数必须用关键字参数,*param可以在任意位置
在这里插入图片描述
**param接收任意多个以关键字参数赋值的实际参数,并将其放到一个字典中
在这里插入图片描述

  • *和**符号同时出现时,*在前**在后
  • 可变参数可以传递0个1个或者多个
  • 可变参数一定在普通(位置)参数之后

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值