python专栏:【全网最强】Python系统学习手册

目录

一、函数入门

二、函数的参数

三、局部函数(函数的嵌套)

四、函数的高级内容

五、局部函数与lambda


一、函数入门

1.概念

  • 函数是可以重复执行一定任务的代码片段,具有独立的固定的输入输出接口。
  • 函数定义的本质,是给一段代码取个名字,方便以后重复使用
  • 为了方便以后调用这个函数,在定义它的时候,就需要明确它的输入(参数)与输出(返回值)

2.定义函数的语法格式

def 函数名(形参列表):#可执行语句return 返回值

函数名

  • 只要是合法的标识符即可(同变量命名)
  • 为了提高可读性,建议函数名由一个或多个有意义的单词组成,单词之间用下划线_分隔,字母全部小写

形参列表

  • 在函数名后面的括号内,多个形参用逗号分隔,可以没有参数
  • 参数可以有默认值,可以用等号=直接指定默认值,有默认值的参数必须排最后
  • 没有默认值的参数,在调用的时候必须指定
  • 形参也可以没有,但是括号不能省略
  • 调用有默认值的参数要指定名字

返回值

  • 返回值可以没有,直接省略return这句话
  • 返回值可以是一个或多个,用逗号分隔,组合成一个元组
  • 返回值还可以是表达式
  • 多个返回值,不需要的用下划线顶替!

3.函数的文档(注释→help)

  • 一段被注释的文字对函数进行解释。
  • 可以用help()查看函数的文档,只要把一段字符串紧接着放在函数的声明行的后面,它就可以被help识别了。

4.举例

# 函数定义
def myfunc(arg1, arg2, arg3=None):''' This is a example for python documentation.这是一个为python函数提供文档的例子。arg1: 第一个参数的说明arg2: 第二个参数的说明arg3: 第三个参数的说明(这个参数有默认值)v1, v2, v3: 返回值的说明 '''v1 = arg1 + arg2v2 = arg1 * arg2if arg3 is None:v3 = arg1 + arg2else:v3 = arg1 + arg2 + arg3return v1, v2, v3
# 函数调用
v1, v2, v3 = myfunc(5, 3, arg3=4)
print(v1, v2, v3)    #8 15 12# 使用arg3的默认值调用函数
v1, v2, v3 = myfunc(5, 3)
print(v1, v2, v3)    #8 15 8# 忽略一个返回值
v1, v2, _ = myfunc(5, 3)
print(v1, v2, v3)    #8 15 8# 看看返回值是元组tuple,在返回的过程中被自动解包
print(type(myfunc(5,3)))    #<class 'tuple'>

二、函数的参数

  • 函数的参数是参数与外部可变的输入之间交互的通道。
  • 函数的参数名称应该满足标识符命名规范,应该有明确的含义,可通过参数名称知道每个参数的含义。
  • 在函数定义下面的注释中逐个注明函数(和返回值)的含义,以便用户即使不甚了解函数中的具体内容也能正确无误的使用它。
  • 实参:实际参数,从外面传递来的实际的参数
  • 形参:形式参数,在函数内部它形式上的名字
  • 调用函数时,实参按照顺序位置与形参绑定,称为位置参数(Positional Argument)
  • 也可以在调用时,写明实参与形参的对应关系,称作传递关键字参数(Keyword Argument),这时候位置信息被忽略了
  • 同时传递位置参数与关键字参数,应该先传递位置参数,再传递关键字参数!
  • 函数定义的时候,可以指定默认值,但带默认值的参数必须列在参数列表的最后
#举一个小栗子,计算纸箱子的体积
def cube_volume(length, width, height = 0.25):'''计算纸箱子的体积(单位:m)length: 长;    width: 宽height: 高(默认参数0.25)v: 返回值,纸箱的体积,单位m**3'''if length <= 0:print('length must larger than 0!')return 0if width <= 0:print('width must larger than 0!')return 0if height <= 0:print('height must larger than 0!')return 0v = length*width*heightprint('length = %.2f; width = %.2f; height = %.2f; cube volume = %.2f' % \(length, width, height, v))return v# 使用位置参数调用
v = cube_volume(1, 2, 3)
# 使用关键字参数调用
v = cube_volume(width = 1, height = 2, length = 3)
# 位置参数和关键字参数混用
v = cube_volume(1, height = 2, width = 3)# 关键字参数在位置参数之前会报错
# v = cube_volume(width = 1, 2, 3)

1.可变对象

  • 如果参数是可变对象(如列表),函数内部对此对象的修改会在函数执行后仍然有效
  • 如果默认参数是可变对象,函数内部修改了此对象后,函数默认值也发生了改变!
  • 实际函数传递进去的是地址,函数体不会将地址传递出来,但地址对应的值发生了变化。
# 对列表的乘方运算
def pow_list(x, p):'''power of a listx: listp: powernot return value'''for i in range(len(x)):x[i] **= p#这样会输出乘方后的值,但不会改变x列表里的值#因为在计算时将x中的值传入了新的参数进行计算#for i in x:#    i **= p#    print(i)#print(x)x = [1,2,3,5,7,9,10,12]
pow_list(x,2)
print(x)
# 可见函数内部对列表x中元素的更改,当函数退出之后依然有效

利用可变对象的特点,可以制作一种隐藏的参数记录器

【全文干货】python—函数详解(值得收藏的学习手册)相关推荐

  1. python函数详解

    写在篇前   函数能提高应用的模块性,和代码的重复利用率,是编程必须具备的基本抽象能力.python函数更是奇妙灵活,与很多特性值得探讨,本篇文章就来详细看看python 函数那些巧妙之处.首先,在篇 ...

  2. 2、Python函数详解(0601)

    函数的基础概念 1.函数是python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构: 2.函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件: 3.函数用于将相关功能打包并参 ...

  3. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  4. Python 函数详解

    作用域 全局变量&局部变量 全局变量和局部变量都是在讨论无参数的函数,不要把全局变量和局部变量与函数的参数混淆了. 1.1 函数会在函数域中找变量(局部变量),如果函数内部没有定义该变量,则会 ...

  5. python函数详解_Python函数详解(转)

    原地址:http://www.ithov.com/linux/100534_2.shtml 摘要:Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多 ...

  6. 【python入门篇——16】Python函数详解(函数定义,参数种类、返回值、作用域等)

    一 函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.代码重用2.保持一致性3.可扩展性 二 函数的创建 2.1 格式: Pyt ...

  7. python函数详解_INDEX函数

    一. 函数的作用 函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求. 函数在开发过程中,可以更高效的实现代码重用. 二. 函数的使用步骤 1. 定义 ...

  8. java乱码问题详解-值得收藏

    http://www.cnblogs.com/diegoliu/archive/2012/04/23/2467341.html 1)前言: 解决web程序的国际化问题,必须在任何地方使用UTF-8对字 ...

  9. 正则表达式详解-值得收藏

    简介及语法 正则表达式是什么 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码. 正则表达式 ...

  10. python基础知识~ 函数详解2

    python~函数详解2  1 生成器函数    定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数   须知 yield和return一样,都可以返回数 ...

最新文章

  1. STL标准容器类简介
  2. 【科技金融】某平台互金产品设计流程和运营策略
  3. QT绘制水平百分比条形图。
  4. bitcount java_Java.math.BigInteger.bitCount()方法实例
  5. Cinemachine教程 | Unity中如何快速制作镜头晃动?
  6. Hyper-v中安装centos网卡故障
  7. 一些Select检索高级用法(适用于mssql)
  8. YUV420图像旋转
  9. 手机变成投影仪 建筑穿上节能衣
  10. Cannot access a disposed object. A common cause of this error is disposing a context that was resolv
  11. 如何获取网页logo与favicon图标使用
  12. python中if语句中可用break_python跳出if语句
  13. ffmpeg安装之mac安装
  14. 联想g400从u盘启动计算机,联想G40怎么从U盘启动|联想G40设置U盘启动方法
  15. jQuery UI 插件
  16. 输入某学生的考试成绩,输出对应等级A、B 、C、 D、E
  17. mysql数据库修改密码
  18. 通过坐标点位,计算多边形面积
  19. 区块链100讲:Truffle——一个更简单的部署智能合约的方法
  20. nodejs uuid 生成

热门文章

  1. 用OpenCV创建第一个图像
  2. nlp自然语言处理_NLP自然语言处理基础
  3. 数据增强操作(旋转、翻转、裁剪、色彩变化、高斯噪声等)
  4. HashMap原理剖析
  5. python清理浏览器文件_URL可以在浏览器或wget中正常工作,但是从Python或cURL中清空...
  6. CSDN:数学公式编辑器
  7. 【云原生 | Docker篇】 Docker容器配置阿里云镜像加速器
  8. java小游戏制作(maxfo)
  9. native service
  10. Java的下载与安装简易教程