Python 函数
来源:互联网 发布:java多用户商城开源 编辑:程序博客网 时间:2024/06/05 13:21
一般意义上,函数是编程语言中的结构化元素,用于对语句进行分组,这样便可以在程序中多次使用。倘若没有函数,实现这一目标的唯一方法是:通过复制代码,并将其改编为不同的上下文来重用。
使用函数,有很多好处:
- 有助于将程序分解成更小的块(模块化)
- 提高程序的可理解性和质量
- 避免重复并使代码可重用
- 降低了软件开发和维护的成本
……
尤其是随着程序越来越大,函数的作用会更加显著,不仅让程序更有条理,而且更便于管理。
- 简述
- 函数定义
- 函数调用
- docstring
- return 语句
- 返回一个值
- 返回 None
- 返回多个值
版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820
函数定义
在 Python 中,函数由 def
语句定义,一般的语法格式如下所示:
def function_name(parameters): """docstring""" statement(s)
- 1
- 2
- 3
- 1
- 2
- 3
以上函数定义,由以下部分组成:
- 关键字
def
:标志着函数头的开始 - 函数名(
function_name
):唯一标识一个函数,函数命名遵循标识符的编写规则。 - 参数(
parameters
):通过它可以将值传递给函数,是可选的。 - 冒号(
:
):用于标记函数头的结尾。 - 文档字符串(docstring):用于描述函数的功能,是可选的。
- 函数体:由一个或多个有效的 python 语句构成,语句必须具有相同的缩进级别(通常为 4 个空格)。
return
语句:用于从函数返回一个值,可选的。
例如,定义一个函数,用于计算数字的平方:
>>> def square(x):... return x**2... >>>
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
函数调用
一旦函数被定义,便可以从另一个程序、函数、甚至是 python shell 中调用它。
要调用函数,只需键入函数名称,以及适当的参数。
>>> square(3)9>>> >>> square(6)36
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
docstring
函数头后的第一个字符串称为 docstring(文档字符串 - documentation string 的缩写),用于简单地解释函数的功能,可以使用 function_name.__doc__
来访问。
>>> def square(x):... """return square of given number"""... return x**2... >>> >>> print(square.__doc__)return square of given number
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
PS: docstring 是接口设计的重要部分,虽然是可选的,但应尽量养成使用它的习惯。
return 语句
return 语句用于退出函数,并将结果(即:return 关键字之后的表达式的值)返回给调用者。
如果函数中没有 return 语句,则当控制流到达函数体的末尾时,函数结束。
语法格式:
return [expression_list]
- 1
- 1
返回一个值
在上述示例中,函数 square() 使用了一个 return 语句。调用该函数,return 之后的表达式的值将被返回。
>>> val = square(3)>>> val9
- 1
- 2
- 3
- 1
- 2
- 3
返回 None
但是,如果没有明确地给出 return 语句,那么将返回什么?让我们来看看:
>>> def square(x):... y = x**2... >>> >>> val = square(3)>>> print(val)None
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
调用函数,将打印 None,即无 return 语句的函数返回特殊值 None。
如果函数只有一个 return,而没有表达式,那么也将返回 None:
>>> def square(x):... y = x**2... return... >>> val = square(3)>>> print(val)None
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
返回多个值
一个函数只能返回一个值,或者更应该说是一个对象。对象可以是一个数值(整数或浮点数),也可以是列表或字典。所以,如果要返回 2 个整数值,可以返回一个列表或一个包含这 2 个整数值的元组。这意味着,可以间接返回多个值。
例如,计算一个序列的最大值和最小值:
>>> def max_min(seq):... max_val = max(seq)... min_val = min(seq)... return max_val, min_val... >>>
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
返回值通过拆包立即存储到变量 max_val 和 min_val 中:
>>> l = [1, 3, 5, 7, 9]>>> max_val, min_val = max_min(l)>>> max_val9>>> >>> min_val1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
返回多个值只不过是一种假象,函数返回的仍然是单一值:
>>> val = max_min(l)>>> val(9, 1)
- 1
- 2
- 3
- 1
- 2
- 3
没错,就是 tuple!在语法上,返回一个 tuple 可以省略括号,并可以同时由多个变量接收,按位置赋予相应的值。
所以,Python 的函数返回多个值其实就是返回一个 tuple,只不过写起来更方便而已。
news.39.net/zzzyyy/170704/5512082.html
news.39.net/zzzyyy/170704/5512067.html
news.39.net/zzzyyy/170704/5512036.html
news.39.net/zzzyyy/170704/5512001.html
news.39.net/zzzyyy/170704/5511973.html
news.39.net/zzzyyy/170704/5511940.html
news.39.net/zzzyyy/170704/5511901.html
news.39.net/zzzyyy/170704/5511885.html
news.39.net/zzzyyy/170704/5511865.html
news.39.net/zzzyyy/170704/5511802.html
news.39.net/zzzyyy/170704/5511777.html
news.39.net/zzzyyy/170704/5511753.html
news.39.net/zzzyyy/170704/5511698.html
news.39.net/zzzyyy/170704/5511610.html
news.39.net/zzzyyy/170704/5511583.html
news.39.net/zzzyyy/170704/5511561.html
news.39.net/zzzyyy/170704/5511522.html
news.39.net/zzzyyy/170704/5511485.html
news.39.net/zzzyyy/170704/5511454.html
news.39.net/zzzyyy/170704/5511421.html
- python函数
- python 函数
- python 函数
- Python 函数
- python 函数
- PYTHON函数
- python 函数
- Python函数
- python 函数
- Python 函数
- Python 函数
- Python 函数
- python函数
- python函数
- python 函数
- Python 函数
- Python函数
- Python函数
- 错误整理:No plugin found for prefix 'jetty' in the current project and in the plugin groups
- jquery中获取一批包含同样字符id值方法
- Sample语言编译与运行及简单虚拟机器的设计实现
- sprinv MVC 文件上传 图片上传
- C++ 选课系统
- Python 函数
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- bzoj 1011: [HNOI2008]遥远的行星
- nginx代理websocket的一个问题
- 2017年软考各科最新真题详细解析资料集锦
- android常见面试问题(附问题解读链接)
- Android Studio 使用Lambda表达式
- centos7 下载软件包
- 开篇