欢迎访问宙启技术站
智能推送

Python基础——使用def定义函数的正确姿势

发布时间:2023-06-24 16:51:12

def定义函数是Python中最基础的语法之一,也是Python开发中非常常见的语法。什么是函数呢?函数是一段完成特定任务的代码块,通过给函数传递不同的参数,它可以完成不同的任务。函数的定义可以让代码更加模块化、可重用、可维护。这篇文章就来介绍一下如何使用def定义函数的正确姿势吧。

1. 定义函数

在Python中,使用def来定义函数。def后面跟着函数名、参数、函数体。例如下面这个非常简单的函数,它的功能是输出Hello, world!:

def say_hello():
    print("Hello, world!")

通过这个函数,我们可以在程序中任何我们想要输出Hello, world!的地方调用这个函数。

2. 函数的参数

函数的参数是函数定义时所声明的变量,用于接收调用函数时传递过来的值。Python中的函数参数可以是位置参数、默认参数、可变参数和关键字参数。

(1) 位置参数

位置参数是调用函数时根据位置顺序传递给函数的参数。例如下面这个函数用来实现整数加法:

def add(num1, num2):
    result = num1 + num2
    return result

调用函数时必须按照定义时的顺序传递参数,如下所示:

print(add(3, 5))  # 输出 8

(2) 默认参数

默认参数在函数定义时指定一个默认值,如果调用函数时没有传递该参数,则会使用默认值。例如下面这个函数,它的默认参数为10:

def get_age(name, age=10):
    print(name + " is " + str(age) + " years old.")

调用函数时可以只传递name参数,age参数会使用默认值:

get_age("Tom")  # 输出 Tom is 10 years old.

如果需要修改默认参数,则需要指定参数名:

get_age("Tom", 20)  # 输出 Tom is 20 years old.

(3) 可变参数

可变参数允许在调用函数时传递任意数量的参数,这些参数会被封装成一个元组。可变参数通过在函数定义时在参数名前面加上*来声明。例如下面这个函数,它会将传递的所有数字相加:

def add(*nums):
    result = 0
    for num in nums:
        result += num
    return result

调用函数时可以传递任意数量的参数,例如:

print(add(1, 2, 3))  # 输出 6
print(add(1, 2, 3, 4, 5))  # 输出 15

(4) 关键字参数

关键字参数允许在调用函数时传递任意数量的参数,这些参数会被封装成一个字典。关键字参数通过在函数定义时在参数名前面加上**来声明。例如下面这个函数,它用于打印用户信息:

def print_user_info(**kwargs):
    for key, value in kwargs.items():
        print(key + ": " + value)

调用函数时可以传递任意数量的参数,例如:

print_user_info(name="Tom", age="20", gender="male")

输出:

name: Tom
age: 20
gender: male

3. 函数的返回值

函数执行完后,通常需要把结果返回给函数调用者。函数的返回值可以是任意类型的数据,不仅仅是数字或字符串,也可以是元组、列表、集合、字典等复杂类型。使用return关键字来返回函数的结果。例如下面这个函数,它用于计算正方形的面积:

def square_area(side_length):
    area = side_length ** 2
    return area

调用这个函数:

print(square_area(4))  # 输出 16

4. 函数文档

Python允许在函数内部添加文档字符串(docstring),用于说明函数的作用、参数、返回值等信息。文档字符串要放在函数定义的 行,用三个引号(单引号或双引号)括起来。例如:

def add(num1, num2):
    """用于计算两个数字的和。
    参数:
    num1:      个数字
    num2:第二个数字
    返回值:
    两个数字的和
    """
    result = num1 + num2
    return result

文档字符串与函数定义分开来,通常使用help()函数来查看函数的文档字符串,例如:

print(help(add))

输出:

Help on function add in module __main__:

add(num1, num2)
    用于计算两个数字的和。
    参数:
    num1:      个数字
    num2:第二个数字
    返回值:
    两个数字的和

在Python中,函数是一等公民,它可以像变量一样进行传递、返回和赋值。使用def定义函数是Python编程最基础的技能之一,学好def定义函数,对于后续的Python编程将非常有帮助。