Python 基础教程

Python 流程控制

Python 函数

Python 数据类型

Python 文件操作

Python 对象和类

Python 日期和时间

Python 高级知识

Python 参考手册

Python 函数

在本文中,您将了解函数、函数是什么、函数的语法、构成和类型。另外,您还将学习如何用Python创建函数。

Python中的函数是什么?

在Python中,函数是一组执行特定任务的相关语句。

函数有助于将我们的程序分解为较小的模块。随着我们的项目越来越大,函数使其变得更加有组织和易于管理。

此外,它避免了重复写相同的代码,函数使代码可重复使用。

函数语法

def function_name(parameters):
	"""docstring"""
	statement(s)

上面显示的是由以下组件组成的函数定义。

  1. def标记函数头开始的关键字。

  2. 用于唯一标识函数的函数名称。函数命名遵循在Python中编写标识符的相同规则

  3. 通过其将值传递给函数的参数。它们是可选的。

  4. 冒号(:)标记函数头的结尾。

  5. 可选的文档字符串(docstring),用于描述函数的函数。

  6. 组成函数体的一个或多个有效python语句。语句必须具有相同的缩进级别(通常为4个空格)。

  7. 可选的return语句,用于从函数返回值。

函数示例

def greet(name):
    """
    这是一个打招呼的函数,
    通过name参数传递,
    要打招呼的人名
    """
    print("Hello, " + name + ". Good morning!")

如何在python中调用函数?

定义函数后,我们可以从另一个函数,程序甚至Python提示符中调用它。要调用函数,我们只需键入带有适当参数的函数名称即可。

>>> greet('Paul')
Hello, Paul. Good morning!

注意:尝试在带有函数定义的Python程序中运行以上代码,以查看输出。

def greet(name):
    """
    这是一个打招呼的函数,
    通过name参数传递,
    要打招呼的人名
    """
    print("Hello, " + name + ". Good morning!")

greet('Paul')

Docstrings(文档字符串)

函数头之后的第一个字符串称为docstring,是文档字符串的缩写。简要说明了函数的作用。

尽管是可选的,但文档是一种良好的编程习惯。除非您记得去年今天的晚餐时间和晚餐吃什么,否则请务必记录注释您的代码。

在上面的示例中,我们在函数标头的正下方有一个文档字符串。我们通常使用三引号将文档字符串扩展为多行。该字符串可作为__doc__函数的属性供我们使用。

例如

尝试将以下内容运行到Python shell中以查看输出。

>>> print(greet.__doc__)

    这是一个打招呼的函数,
    通过name参数传递,
    要打招呼的人名

 要了解有关Python中的文档字符串的更多信息,请访问Python Docstrings

return 语句

return语句用于退出函数并返回到调用函数的位置。

返回语法

return [expression_list]

该语句可以包含一个表达式,该表达式将被求值并返回值。如果该语句中没有表达式,或者return语句本身不存在于函数中,则该函数将返回None对象。

例如:

>>> print(greet("May"))
Hello, May. Good morning!
None

None是返回值,因为greet()函数直接打印名称,并且没有使用return语句。

return示例

def absolute_value(num):
    """这个函数返回输入数字的绝对值"""

    if num >= 0:
        return num
    else:
        return -num


print(absolute_value(2))

print(absolute_value(-4))

输出结果

2
4

Function如何在Python中工作?

函数如何在Python中工作?
Python中的函数工作原理

变量的作用域和生命周期

变量的作用域是程序中可以识别该变量的部分。从函数外部看不到在函数内部定义的参数和变量。因此,它们具有本地作用域。

变量的生命周期是变量在内存中退出的时间。函数内部变量的生命周期与函数执行的时间一样长。

一旦我们从函数返回,它们就会被销毁。因此,函数无法记住其先前调用中的变量值。

这是一个示例,用于说明函数内部变量的生命周期。

def my_func():
	x = 10
	print("函数内部值:",x)

x = 20
my_func()
print("函数外部值:",x)

输出结果

函数内部值: 10
函数外部值: 20

在这里,我们可以看到x的初始值为20。即使函数my_func()将x的值更改为10,它也不会影响函数外部的值。

这是因为函数内部的变量x与函数外部的x变量不同。尽管它们具有相同的名称,但是它们是两个具有不同作用域的不同变量

另一方面,从外部可以看到函数外部的变量。它们具有全局作用域,也就是函数内外部都可以使用该全局变量。

我们可以从函数内部读取这些值,但不能更改(写入)它们。如果要在函数外部修改变量的值,必须使用关键字global,将它们声明为全局变量。

函数类型

基本上,我们可以将函数分为以下两种类型:

  1. 内置函数-Python内置的函数

  2. 用户定义的函数 -用户自己定义的函数