Python中函数的用法实例教程
什么是函数?
在Python中,函数是一段可重用的代码块,其可以接收输入参数并返回输出结果。
函数需要有一个名字来区别于其他代码段,名字规则与变量名相同。定义函数时,需要使用关键字 def
来指定函数名和参数列表。函数体需要缩进,我们可以在函数体中实现各种操作逻辑。
例如,下面定义了一个简单的函数:
def hello_world():
print('Hello, World!')
该函数没有参数,其执行函数体中打印 'Hello, World!'
字符串的操作。
为了调用函数,我们需要使用函数名和括号。例如,为了调用 hello_world()
函数,我们可以这样写:
hello_world()
函数的参数
必选参数
函数的参数可以分为必选参数和可选参数。必选参数是函数定义时必须指定的参数,其在调用函数时必须提供相应的参数。例如,下面的函数接收两个必选参数:
def add_num(a, b):
return a + b
在调用该函数时,你需要为 a
和 b
分别指定参数。例如,我们可以这样求两个数的和:
result = add_num(1, 2)
print(result) # 3
默认参数
对于有些参数,我们希望在函数定义时有默认值,这些参数被称为默认参数。默认参数可以在函数调用中直接省略,此时会使用定义时设定的默认值。例如,我们可以这样定义一个函数:
def power(x, n=2):
return x ** n
power
函数接收两个参数,其中 n
的默认值为 2
。在调用函数时,你可以指定一个或两个参数:
print(power(3)) # 使用默认值2,输出 9
print(power(3, 3)) # 指定 n=3,输出 27
可变参数
有时我们希望能够接收不定个数的参数,这些参数被称为可变参数。在 Python 中,我们可以使用 *args
来接收多个位置参数,或者使用 **kwargs
来接收多个关键字参数。
例如,下方的函数接收任意个参数,求这些参数的平方和:
def square_sum(*args):
result = sum(arg ** 2 for arg in args)
return result
调用该函数时,你可以传入任意个参数:
print(square_sum(1, 2, 3, 4)) # 30
关键字参数
有时我们需要在函数中指定关键字参数,这些参数可以按照名字顺序任意排列,不需要按照固定位置传入。
例如,下面的函数接收两个参数 a
和 b
,和一个关键字参数 c
,默认值为 0
:
def mix_add(a, b, *, c=0):
return a + b + c
该函数只能接收两个位置参数 a
和 b
,在调用函数时需要使用关键字参数 c
:
print(mix_add(1, 2, c=3)) # 输出 6
函数的返回值
函数可以返回一个或多个结果。在 Python 中,我们可以使用 return
关键字来返回结果。例如,下方的函数接收一个数字 n
,并返回 1
到 n
的和:
def sum_to_n(n):
return sum(range(1, n+1))
调用函数时,你可以将函数的结果保存到一个变量中:
result = sum_to_n(100)
print(result) # 5050
示例
示例 1:计算两点之间距离
下方的函数可以计算平面坐标系下两点之间的距离。
import math
def distance(x1, y1, x2, y2):
dx = x2-x1
dy = y2-y1
return math.sqrt(dx ** 2 + dy ** 2)
在调用该函数时,你可以指定两点的坐标:
d = distance(1, 2, 4, 6)
print(d) # 输出 5
示例 2:求列表平均数
下方的函数可以接收任意数量的数字参数,并求其平均数。
def average(*args):
if not args:
return None
return sum(args) / len(args)
在调用该函数时,你可以传入任意数量的数字参数:
print(average(1, 2, 3, 4, 5)) # 输出 3.0
print(average(1, 3, 5)) # 输出 3.0
print(average()) # 输出 None
总结
本文简要介绍了 Python 中函数的用法。我们了解了如何定义和调用函数,如何使用必选参数、默认参数、可变参数和关键字参数,以及如何返回结果。函数是 Python 编程中一个非常重要的概念,理解和掌握函数的用法是编写高效、易维护的 Python 代码的关键之一。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中函数的用法实例教程 - Python技术站