当前位置: 首页 > news >正文

函数的定义与使用

01.函数的定义与使用

1.定义函数

def  函数名(参数列表):

       函数体

函数的调用:返回值=函数名(输入参数)

2.返回值

  1. 使用return返回函数计算结果
  2. 可以有多个return语句,但是真正执行时最多运行1次,碰到return语句,函数结束
  3. 如果没有return语句,函数返回值为None
  4. return可以返回多个变量

02.传参机制

1.形参和实参

形参:定义函数时的输入参数

实参:调用函数式传递的参数

2.值传递

函数中的形式参数变化,不会导致实际参数的变化,这是由于传递的是数值单方向的。参数为不可变类型,字符串,数字,元组。

3.引用传递

函数中形式参数变化,会导致实际参数一起变化,这是由于传递的是变量。参数为可变类,列表,字典。

  • 尽量不要传递列表,字典这种可变数据
  • 即使传参,也尽量不要改动这些参数
  • 技巧:传递列表,字典这类变量,传递一个副本,这样就算修改实参也不会发生变化

4.位置参数

参数个数相同,顺序一一对应

5.关键字参数

根据形参的名字传递参数

def f(a,b,c,d,e):
print(a)
print(b)
print(c)
print(d)
print(e)
f(e=5,d=4,a=1,b=2,c=3)

同时存在时,未知参数在前,关键字参数在后

6.默认参数

定义函数时,给一个形参默认值,所有的默认参数必须放在最后。调用时如果省略该参数则该参数为默认值

def f(a,b,c=3,d=4,e=5):
print(a)
print(b)
print(c)
print(d)
print(e)
f(1,2)#后三个参数使用默认值
f(1,2,5)#c=5,不使用默认值

7.不定长参数(*)

①变成元组
  1. 形式参数前加*,表示不定长参数,可以按照未知参数的格式传递多个参数
  2. 加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数

def f(a,b,*argtuple):
print(a)
print(b)
print(argtuple)#(3,4,5,6,7,8)
f(1,2,3,4,5,6,7,8)

②变成字典
  1. 形式参数前加**,表示不定长参数,可以按照关键字参数的格式传递多个参数,必须加名词
  2. 加了星号**的参数会以字典(dict)的形式导入

def f(a,b,**args):
print(a)
print(b)
print(args)#{'c':4,'d':4,'e':5}
f(1,2,c=3,d=4,e=5)

03.变量作用域

局部变量:函数内部的变量,仅作用于函数内部

全局变量:函数外部的变量,作用于全局

将函数内部的局部变量变成全局变量:在变量前加global

http://www.dtcms.com/a/434692.html

相关文章:

  • Citadel 发布首个原生支持 Sui 的硬件钱包 SuiBall
  • 游戏攻略新闻资讯主题模板源码 YK一点资讯模版 Zblog主题模版
  • 英语学习-Saints043-2
  • 手机网站html512306的网站是哪个公司做的
  • 认知篇#14:360度舵机和180度舵机的区别
  • 多模态大语言模型LISA
  • 第一次训练赛题解
  • 在线购物网站 模版怎么开网店具体流程
  • 返回值:on()方法返回的是当前jQuery对象
  • 你用过快捷支付吗?这是一种什么支付方式?
  • 自己做的网页加在网站文章上为什么打不开门户网站系统架构
  • 韩国在中国做美食的视频网站有哪些企业网站建设开发服务
  • (C语言数据结构)二叉树-概念-性质-存储结构-遍历-代码实现层层刨析
  • 面试MySQL 高级问题及解答(三)
  • 网站网页转小程序教程wordpress评论框背景图片
  • 【代码随想录day 32】 力扣 70.爬楼梯
  • Leetcode 76. 最小覆盖子串 滑动窗口+哈希表
  • 深入理解HarmonyOS ArkTS语法:从基础类型到高级组件开发
  • 安卓基础组件023-SharedPerferences
  • Qt信号与槽在多线程编程中的应用与注意事项
  • Data Agent革命:智能数据分析时代的到来
  • 可观测性体系建设:Java Agent实现方法级调用链追踪实践
  • 制作企业网站新闻列表页面网页设计2021电商行业发展现状及趋势
  • 温州网站优化php wordpress漏洞
  • 网站是否必须做认证技术支持东莞网站建设
  • 如何设计量子密钥管理系统?——面向后量子时代的密钥管理架构与核心功能探讨
  • 免费网站优化软件wordpress不能登录
  • 小迪web自用笔记46
  • 第七章 卷积神经网络(CNN)
  • 利用开源软件开发应用程序的设计开发流程