前面我们写过九九乘法表,但如果我要七七乘法表或五五乘法表的话,你会看到三者代码极其类似,只是循环变量不同,那么如何做到代码重用,⽽不是简单拷贝黏贴修改呢,其实可是使⽤函数完成这一功能

函数的优点:

  • 代码可复用
  • 代码可维护性高
  • 容易排错
  • 可读性好
  • 利于团队开发

1.函数定义

函数就是完成特定功能的代码块,本质上是对代码的封装。 语法格式:

函数名命名规则同变量名,要满⾜标识符命名规则:

  • 不能和系统函数重名,否则系统函数无法使⽤
  • 函数定义分两部分:函数头和函数体
  • 函数体,就是实现功能的代码段,以:开头,必须缩进
  • 函数名的命名风格:一般建议用下划线分隔的小写单词组成: say_hello

2 函数参数

2.1 实参和形参

  • 形参:就是函数定义时小括号里的变量
  • 实参:函数调用的时候,小括号里的表达式
  • 函数可以没有形参和实参

2.2 参数分类

  • 位置参数,要求实参顺序必须和形参顺序完全一致,由形参顺序决定实参顺序

  • 关键字参数,函数调⽤时,实参可以是键值对,键就是形参名字,这样的调用,实参不必关⼼形参的顺序。

  • 默认值,如果形参在定义的时候给定⼀个值,那么函数在调用时就可以不传实参,可以简化调⽤

默认值参数必须放到最右边
如果传了实参,那么实参优先,不会使⽤默认值
默认值只计算⼀次
默认值必须是不可变对象

  • 可变参数,传入的参数个数是可变的,可以是1个、 2个到任意个,还可以是0个。

3 函数调⽤用

  • 函数调用必须在函数定义之后
  • 函数调用必须能够正确传递实参

4 返回值

可以通过return语句返回计算结果。语法: return 表达式

  • return的作⽤一个是终⽌函数的执行,所有执行了return后,其后的语句不会被执⾏
  • 如果没有return语句,则默认返回的是None
  • return还可以返回给调⽤者数值
  • return可以返回⼀个值,如果要返回多个值,那么返回的是⼀个元组

5 文档字符串

函数⽂档字符串documentation string (docstring)是在函数开头,⽤来解释其接口的字符串。简⽽而⾔言之:帮助⽂档

  • 包含函数的基础信息
  • 包含函数的功能简介
  • 包含每个形参的类型,使用等信息

⽂档字符串书写规则:

  • 必须在函数的⾸行
  • 使⽤三引号注解的多行字符串(''' ''') 或(""" """)
  • 函数文档的第⼀行⼀般概述函数的主要功能,第⼆行空,第三行详细描述。

6.参数传递(**)

python的参数传递是简单的值传递,当然这里的值是指变量的引⽤(地址),不是变量的值。不存在值传递和引⽤传递的区分。简⽽言之, python的参数传递可以称之为对象引⽤传递,对象可以分为:

  • 不可变对象: int、 float、 None、 complex、 bool、 tuple、 str,range

在函数内部不可能修改函数外部的变量

  • 可变对象: dict、 list

可以在函数内部修改

7 空函数

借助于pass语句实现,函数体不完成任何功能,只有⼀个pass语句

函数_月隐学python第9课相关推荐

  1. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  2. 函数进阶_月隐学python第11课

    目录 1.函数类型 2. 匿名函数 3.传入函数(理解) 4.闭包 5.偏函数 6.变量的作用域 6.1 变量作用域的分类 6.2 变量作⽤域查找规则 6.3 全局变量和局部变量 6.4 global ...

  3. 函数运用_月隐学python第10课

    初级 1.对加减乘除分别封装一个函数进行计算,参数是两个数,返回值是计算结果 2. 写函数,传入⼀个参数n,返回n的阶乘 3. 传⼊一个正整数,判断这个数是否是素数,如果是返回True,否则返回Fal ...

  4. 字典与集合_月隐学python第8课

    一.字典 字典属于无序列,元素存放无序,是通过哈希方式进行数据存取的,字典是一个可变容器,字典中保存一个的键值对: key : value.我们通过key来获取对应的值,很类似我们的汉语字典. 字典中 ...

  5. 字符串_月隐学python第7课

    一.字符串 字符串就是由若干个不同的unicode字符组成的不可变序列 1 .字符串创建 2.获取字符 因为是不可变序列,所以不能修改单个字符: 凡是修改字符串的操作都产生新串 3.字符串转义 常⻅转 ...

  6. 列表_月隐学python第6课

    在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为有序序列,包括:列表.元组和字符串:其中列表的成员可修改,属于可变序列,字符串和元组,成员不可修改,属 ...

  7. 数据类型和运算符_月隐学python第3课

    1.类型判断 我们可以使⽤用type来返回数据类型和⽤用isinstance判断数据类型 2. 运算符和表达式 在数学上为了了计算结果,我们会写⼀一些式⼦子计算,例例如: 30 + 5 这是数学中的算 ...

  8. mysql高级之子查询,多表查询,外连接,集合操作,内部函数与数据控制_月隐学python第24课

    目录 ⼀.⾼级 1.1 ⼦查询 1.2 多表查询 1.3 外连接 1.4 集合操作 1.5 内部函数 ⼆.数据控制 2.1 事务 2.2 授权管理 ⼀.⾼级 1.1 ⼦查询 ⼦查询嵌⼊到其他查询语句中 ...

  9. mysql基础_月隐学python第22课

    目录 ⼀.数据库基本概念 常⻅的数据库: MySQL简介 mysql的安装 linux下 windows下安装 ⼆. SQL 三.操作数据库 四.数据库表 例子: 五.数据类型 数值型 字符型​ ⽇期 ...

最新文章

  1. jmeter的基本功能使用详解
  2. 讲解启动CentOS Samba 服务的方法
  3. git push origin master和git push有什么区别?
  4. Hadoop 核心编程之 HDFS 的文件操作
  5. 威纶通触摸屏与仪表通讯_西门子S7-200PLC与威纶通HMI的通信案例
  6. c现代方法 13章程序设计题 自己编写答案
  7. Spark RDD使用详解5--Action算子
  8. SQL:数据表给定字段的多行记录的合并
  9. 如何创建一份springboot的docker镜像
  10. CodeForces 444C 节点更新求变化值的和
  11. oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...
  12. css设置按钮竖直方向居中_如何借助伪元素实现垂直居中?
  13. 土方工程量计算表格excel_工程造价算量表+工程量软件,超多表格可套用,高清下载...
  14. UG NX 12 将草图对象转化为参考线
  15. 正则表达式匹配连续出现的单词
  16. TCP/IP 模型 与 OSI 七层模型的对应关系
  17. 【完美解决:绝对路径含中文问题】bat一键启动应用绝对路径中含中文导致无法执行
  18. 我的大学(学习-上)
  19. 我的Java学习之路2009-11-17
  20. notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别?

热门文章

  1. SAP UI5 this.getList().getBinding(items).attachChange(this.handleMasterListChanged
  2. Sequence of component save EC and orderadm_h save
  3. attachment delete deletion commit work issue
  4. IBASE object component的where use list
  5. How to resolve syntax error in CL_IM_CMS_SI_GEN_INTF
  6. SAPSQL_IN_ITAB_ILLEGAL_OPTION dump
  7. 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据 1
  8. 在Windows笔记本上调试运行在iOS设备上的前端应用
  9. require php 5.3.0,PHP 5.3.0 安装分析心得
  10. vue计算多列和_解决vue 表格table列求和的问题