Python基础——使用def定义函数的正确姿势
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编程将非常有帮助。
