关于Python函数的定义和参数

  • Post category:Python

关于Python函数的定义和参数,下面是一个完整攻略。

函数的定义

在Python中,函数是一段可重复使用的代码。函数可以通过一些特定的参数来接受输入,然后返回某个结果。定义一个函数可以使用以下格式:

def function_name(parameter1, parameter2, ...):
    """函数文档字符串,用于函数说明"""
    statement1
    statement2
    ...
    return [expression]

其中:

  • function_name:函数名,遵循Python标识符的命名规范,例如”get_sum”或”calculate_average”。
  • parameter1, parameter2, …:函数参数,可以有多个,也可以没有。函数参数是用来接受函数调用者传入的参数值,它们在函数体内作为本地变量使用。
  • statement1, statement2, …:函数体内的语句,用来实现函数的功能。语句可以包括Python表达式、控制流语句和函数调用等。
  • return [expression]:返回值,用于将函数执行的结果返回给函数调用者。可选。

例如,下面是一个计算两数之和的Python函数:

def get_sum(a, b):
    """返回两数之和"""
    return a + b

函数的参数

Python函数的参数可以分为几种类型:位置参数、默认参数、可变参数和关键字参数。

1. 位置参数

位置参数是指在函数调用时按照定义顺序传入的参数,例如上面的get_sum函数,a和b就是位置参数。调用该函数时需要传入两个参数,否则会报错:

result = get_sum(1, 2)
print(result)  # 输出3

2. 默认参数

默认参数是在函数定义时就已定义好的参数,调用者可以选择传递,也可以不传递。如果调用者不传递该参数,则使用预先设置好的默认值。默认参数通过在参数后面定义一个等号和默认值来设置,例如:

def print_info(name, age=20):
    """打印个人信息"""
    print("Name:", name)
    print("Age:", age)

# 调用时只传递一个参数
print_info("Jack")
# 输出:Name: Jack
#      Age: 20

# 调用时传递两个参数
print_info("Mike", 25)
# 输出:Name: Mike
#      Age: 25

3. 可变参数

可变参数是指在函数调用时可以传递可变个数的参数,这些参数会被转换成一个元组。可变参数通过在参数名前加一个星号来表示,例如:

def get_sum(*args):
    """返回所有参数的和"""
    result = 0
    for x in args:
        result += x
    return result

# 调用函数时传递任意个数的参数
result1 = get_sum(1, 2, 3)
result2 = get_sum(1, 2, 3, 4, 5)
# 输出6和15
print(result1, result2)

4. 关键字参数

关键字参数是指在函数调用时以键值对形式传递,这些参数会被转换成一个字典。关键字参数通过在参数名前加两个星号来表示,例如:

def print_info(name, age):
    """打印个人信息"""
    print("Name:", name)
    print("Age:", age)

# 调用函数时传递关键字参数
print_info(name="Mike", age=25)
# 输出:Name: Mike
#      Age: 25

示例说明

下面给出两个示例,说明函数定义和参数的使用:

示例1:计算两点距离

import math

def get_distance(x1, y1, x2, y2):
    """计算两点之间的距离"""
    dx = x2 - x1
    dy = y2 - y1
    distance = math.sqrt(dx ** 2 + dy ** 2)
    return distance

# 调用函数计算两点之间的距离
distance = get_distance(0, 0, 3, 4)
# 输出5.0
print(distance)

在这个例子中,我们定义了一个get_distance函数,接收四个位置参数(两个点的坐标),并使用math库计算出两点之间的距离。我们将该函数保存在一个名为distance.py的文件中,然后从另一个文件中导入该函数并调用它。

示例2:画椭圆

import turtle

def draw_ellipse(x, y, a, b):
    """画一个椭圆"""
    turtle.penup()
    turtle.setposition(x + a, y)
    turtle.pendown()
    for i in range(0, 360, 10):
        radian = i * math.pi / 180
        x = a * math.cos(radian)
        y = b * math.sin(radian)
        turtle.setposition(x + x0, y + y0)

# 调用函数画一个椭圆
draw_ellipse(0, 0, 100, 50)

在这个例子中,我们定义了一个draw_ellipse函数,接收四个位置参数(椭圆中心点坐标和两条半轴的长度),然后使用turtle库画出一个椭圆。注意这里我们使用了Python内置的math库来计算椭圆上每个点的坐标。这个函数同样可以保存在一个名为draw_ellipse.py的文件中,然后在脚本中导入并调用它。