函数是一小块程序,它包含许多执行特定任务的单行或多行语句。假如说你有一个数千行执行不同任务的代码,那么你应该将程序划分为小模块(块),也就是将它们切割为不同的函数,这样可以提高代码的可读性并降低其复杂度。
以下是 Python 的定义函数的语法:
def functionName(arguments): """This is the definition of this function""" statements return returnParam
def language(p): """Function to print a message""" print("Programming language:", p)
这里 language 定义了一个函数,它有一个从调用者传递的参数 p 。在函数内部,有一个 docstring -函数文档说明和一个 print 语句来打印含有参数 p 的信息。
你可以从程序中的任何位置来调用已定义的函数,可以通过使用函数名称以及所需输入参数来调用该函数。
language('Python')
Programming language: Python
return 语句将控制权转移回调用该函数的代码,它表示了函数定义在此结束。
return 的语法如下:
return [values_to_be_returned]
如果函数中没有 return 语句,则缺省返回一个 None 对象。
def square(n): return n*nprint("Square of 4=", square(4))
Square of 4=16
在此代码中, square(n) 函数在 print 函数中被调用,4 作为输入参数被传递进去。在函数内部,有一个计算的达式- n*n ,计算的结果返回到调用函数的位置( print语句)。
变量的作用范围是该变量能被访问的有效范围。当在函数内部声明变量时,在函数的外部无法访问它,这种类型的变量称为局部变量,只能在声明它的函数内被访问到。
变量的生命周期是变量存在于内存中的时间。当在函数内声明变量时,当函数控制流程跳出该函数时,它的内存将被释放。
如以下示例:
def fun(): a = 12 print("Value of a inside function:", a)a = 24fun()print("Value of a outside function:", a)
Value of a inside function: 12Value of a outside function: 24
在这段代码中,在函数内部的变量 a 和函数外部的变量 a 是不同的变量。
如果你尝试从外部访问函数内部声明的变量,你将遇到错误 - NameError name 'x' is not defined 。但是在函数外部声明的变量具有全局范围,可以从内部访问。
Python 中的函数可以分为两种类型: