Python——函数的定义及调用

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。

Python 支持自定义函数。

一. 定义函数

1. 自定义函数的规则

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串(docstring),用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
       函数体

  • 关键字 def:标志着函数头的开始
  • 函数名(function_name):唯一标识一个函数,函数命名遵循标识符的编写规则。
  • 参数(parameters):通过它可以将值传递给函数,是可选的。
  • 冒号(:):用于标记函数头的结尾。
  • 文档字符串(docstring):用于描述函数的功能,是可选的。
  • 函数体:由一个或多个有效的 python 语句构成,语句必须具有相同的缩进级别(通常为 4 个空格)。
  • return 语句:用于从函数返回一个值,可选的。
  • 函数头后的第一个字符串称为 docstring(文档字符串 - documentation string 的缩写),用于简单地解释函数的功能,可以使用 function_name.__doc__ 来访问。

二. 调用函数

一旦函数被定义,便可以从另一个程序、函数、甚至是 Python shell 中调用它。

要调用函数,只需键入函数名称,以及适当的参数。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#定义函数
def area(width, height):
    '''计算面积函数'''
    return width * height
 

w = 4
h = 5

print("width =", w, " \nheight =", h)

# 调用函数
print( " \narea =", area(w, h))

# 访问文档字符串
print(area.__doc__)

执行结果:

pydev debugger: starting (pid: 7532)
width = 4  
height = 5
 
area = 20
计算面积函数

三. 返回值

在 Python 中,根据有无返回值将函数分为:有返回值函数   和   无返回值函数。

调用有返回值函数时,可以使用返回的结果做相关操作;使用无返回值或返回 None 的函数时,只能得到一个 None 值。

【注】

  • 没有 return 语句时,函数执行完毕也会返回结果,不过结果为 None.
  • return None  可以简写为 return。
  • 在 Python 中定义函数时,需要保持函数体中同一层级的代码缩进一致。

return语句

return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None。

如果函数中没有 return 语句,则当控制流到达函数体的末尾时,函数结束。

语法格式:

     return   [expression_list]

>>> # 返回 None
...
>>> def welcome():
...     print('Hello, World')
...
>>> print(" welcome 函数调用结果:",welcome())
Hello, World
 welcome 函数调用结果: None
>>>
>>>
>>>
>>> # 一个返回值
...
>>> def add0():
...     a=10
...     b=20
...     return a+b
...
>>> print(" add0 函数调用结果:",add0())
 add0 函数调用结果: 30

 

返回多个值

一个函数只能返回一个值,或者更应该说是一个对象。对象可以是一个数值(整数或浮点数),也可以是列表或字典。所以,如果要返回 2 个整数值,可以返回一个列表或一个包含这 2 个整数值的元组。这意味着,可以间接返回多个值。

【例】计算一个序列的最大值和最小值:

>>> def max_min(seq):
...     max_val = max(seq)
...     min_val = min(seq)
...     return max_val, min_val
...
>>>
>>>
>>> #返回值通过拆包立即存储到变量 max_val 和 min_val 中:
...
>>>
>>>
>>> l = [1, 3, 5, 7, 9]
>>>
>>> max_val, min_val = max_min(l)
>>>
>>> max_val
9
>>> min_val
1
>>>
>>>
>>> #返回多个值只不过是一种假象,函数返回的仍然是单一值:
...
>>> max_min(l)
(9, 1)
>>>
>>> # 返回值为 tuple

在语法上,返回一个 tuple 可以省略括号,并可以同时由多个变量接收,按位置赋予相应的值。

所以,Python 的函数返回多个值其实就是返回一个 tuple,只不过写起来更方便而已。

猜你喜欢

转载自blog.csdn.net/qq_41573234/article/details/81608876