函数是指可重复使用的程序片段。允许我们为某个代码块赋予名字,可以通过这一特殊的名字在程序任何地方来运行代码块,并可重复任何次数。这就是所谓的调用函数。 函数可以通过关键字 def 来定义。这一关键字后跟一个函数的标识符名称,再跟一对圆括 号,其中可以包括一些变量的名称,再以冒号结尾,结束这一行。随后而来的语句块是函数 的一部分。下面通过代码来详细说明:

定义名为 say_hello 的函数。这个函数不使用参数,因此在括号中没有声明变量。
输出为:

一、函数参数

函数可以获取参数,这个参数的值由我们自己提供,借此,函数便可以利用这些值来做一些事情。这些参数与变量类似,这些变量的值在我们调用函数时已被定义,且在函数运行时均已赋值完成。 函数中的参数通过将其放置在用以定义函数的一对圆括号中指定,并通过逗号予以分隔。当我们调用函数时,我们以同样的形式提供需要的值。在定义函数时给定的名称称作“形参”,在调用函数时你所提供给函数的值称作“实参”。具体使用方法如下:

输出为:

二、局部变量

当你在一个函数的定义中声明变量时,它们不会以任何方式与身处函数之外但具有相同名称的变量产生关系,也就是说,这些变量名只存在于函数这一局部。这被称为变量的作用域。所有变量的作用域是它们被定义的块,从定义它们的名字的定义点开始。例子如下:

输出为:

第一次打印出存在于函数块的第一行的名为 x 的值时,Python 使用的是在函数声明之上的主代码块中声明的这一参数的值。 接着,将值 2 赋值给 x 。 x 是这一函数的局部变量。当我们改变函数中 x 的值的时候,主代码块中的 x 则不会受到影响。 随着最后一句 print 语句,我们展示出主代码块中定义的 x 的值,由此确认它实际上不受先前调用的函数中的局部变量的影响。

三、global语句

如果想给一个在程序顶层的变量赋值(也就是说它不存在于任何作用域中,无论是函数还 是类),那么我们必须告诉 Python 这一变量并非局部的,而是全局(Global)的。我们需要通 过 global 语句来完成这件事。使用方法如下:

输出为:

四、默认参数值

对于一些函数来说,可能为希望使一些参数可选并使用默认的值,以避免用户不想为他们提供值的情况。默认参数值可以有效帮助解决这一情况。可以通过在函数定义时附加一个赋值运算符( = )来为参数指定默认参数值。 要注意到,默认参数值应该是常数。具体用法为:

输出为:

五、关键字参数

如果有一些具有许多参数的函数,希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值,这就是关键字参数。这里我们使用命名关键字而非位置来指定函数中的参数。 这样做有两个优点。
(1)不再需要考虑参数的顺序,函数的使用将更加容易。(2)可以只对那些希望赋予的参数以赋值,只要其它的参数都具有默认参数值。 详细用法如下:

输出为:

六、可变参数

定义的函数里面能够有任意数量的变量,也就是参数数量是可变的,这可以通过使用星号来实现。具体用法如下:

当声明一个诸如 *param 的星号参数时,从此处开始直到结束的所有位置参数都将被收集并汇集成一个称为“param”的元组(Tuple)。当声明一个诸如 **param 的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为 param 的字典。
输出为:

七、return语句

return 语句用于从函数中返回,也就是中断函数。我们也可以选择在中断函数时从函数中返回一个值。

八、文档字符串

文档字符串(DocStrings)能够帮助我们更好地记录程序并让其更加易于理解。当程序实际运行时,我们可以通过一个函数来获取文档。具体操作如下:

函数的第一行逻辑行中的字符串是该函数的文档字符串。第二行为空行,后跟的第三行开始是任何详细的解释说明。凡功能的文档字符串中都可以遵循这一约定。 通过使用函数的 doc 属性来获取函数 print_max 的文档字符串属性。
输出为:

Python学习:函数相关推荐

  1. Python学习—函数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 1.定义函数 Python 定义函数使用 def 关键字,一般格式如下: def ...

  2. python学习——函数及其参数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.严格来说python只有函数,没有过程,人们理解的函数都是带有return的,而过程 ...

  3. python学习--函数例子

    1 #!/usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #01 函数的定义,调用 5 #生日歌 6 def happy(): 7 print(&qu ...

  4. Debian Linux下的Python学习——函数

    python函数通过def关键字定义.def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. 1.无参数函数(函数不带参 ...

  5. python学习-函数(定义、可变参、小练习(列表最小值函数))

    函数目录 定义 可变参函数 自定义列表最小值函数 定义 函数定义使用关键字def,可以不带参数,也可以带参数,带参数的函数,可以使用位置参数,详见示例: str1 = 'sadf'def printV ...

  6. python学习——函数

    函数 内建函数,如print() 用户自定义函数 一.函数定义法则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). def 函数名(参数列表): 函数体 函数内容以冒号 : 起始 ...

  7. 小猿圈python学习-函数的递归

    求100不断除以2直到商为0为止,打印每次除的商 用循环实现 n = 100 while n > 0: n = int(n/2) print(n) 输出: 50 25 12 6 3 1 0 如果 ...

  8. Python学习 - 面向对象之多态

    Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型:https://blog ...

  9. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  10. 整理了7道Python函数的练习题,希望对你学习函数有帮助

    1.简述普通参数,指定参数,默认参数,动态参数的区别 普通参数:以正确的顺序传入函数,调用时数量必须和声明的一样 指定参数:参数和函数调用关系密切,函数调用使用关键字参数来确定传入的参数值,参数 允许 ...

最新文章

  1. 2021年大数据HBase(三):HBase数据模型!!!【建议收藏】
  2. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 )
  3. 汇编语言随笔(1)- 初步介绍和寄存器概览
  4. 23种设计模式C++源码与UML实现--享元模式
  5. Python 学习拾遗
  6. python学习-综合练习(平方根、海伦公式、随机数、转换函数、数值交换)
  7. 在容器内源码安装PostgreSQL13.2
  8. linux邮件加密码,linux系统的邮件服务器的加密与验证
  9. 砸115亿元入局!后知后觉的欧洲重金建设AI,为赶中超美
  10. 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。 配置文件: D:\instractPath\Developmen
  11. matlab中normfit在正态分布中的使用技巧如下:
  12. 微型计算机三级项目,微机原理三级项目.doc
  13. 前中后序遍历的递归与非递归算法,层序遍历
  14. PDF文件怎么编辑内容
  15. python怎么对数用log,python中的对数log函数表示及用法
  16. openwrt关闭网卡端口
  17. c语言大一期中考试知识点,大一期末考试复习计划
  18. 电商平台接入手机支付宝支付(服务商授权模式,可直接付款给卖家)
  19. 朱松纯领衔、北大清华超强联合,开启「通用人工智能实验班」
  20. 准确曝光一学就会 数码相机曝光的秘诀

热门文章

  1. GPT v.s. 中国象棋:写过文章解过题,要不再来下盘棋?
  2. Object类与Objects类总结
  3. ClickHouse【环境搭建 02】设置用户密码的两种方式(明文+SHA256)及新用户添加及只读模式 Cannot execute query in readonly mode 问题解决
  4. 04 | 负载均衡:Ribbon 如何保证微服务的高可用
  5. JVM 核心技术 调优分析与面试经验
  6. 计算机批量管理,如何将计算机电脑批量加入域
  7. graphpad prism怎么添加图例_Graphpad官网刚刚升级了!听说,新功能吊打R语言...........
  8. Vue + Element UI + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十)问题管理页面
  9. Little Sub and AA
  10. linux无密码sudo,在Linux系统中运行没有sudo密码的特定命令