Python基础:函数

函数与模块   2024-04-05 23:42   218   0  

在Python中,函数是非常重要的一个概念,可以帮助程序员提高代码复用性和可读性。

1 基本定义

函数是指完成特定任务的代码块,可以被多次调用,提高代码复用性。在 Python 中,函数是一种能够接受输入参数并返回输出值的可重用代码块。函数的定义以 def 关键字开头,后面紧跟着函数名和括号 (),函数名可以由字母、数字和下划线组成。括号内可以包含一些参数,多个参数之间用逗号 , 分隔。其基本语法如下:

def function_name(param1, param2, ...):
   statement(s)
   return [expression]

其中,function_name是函数名,param1、param2是传递给函数的参数,用逗号隔开。statement(s)是要执行的语句,可以是一条或多条语句。return表达式是函数返回值。

下面是一个简单的例子,展示了如何定义和调用一个函数:

# 定义一个函数,接收两个参数
def greeting(name, message):
   """向用户问候"""
   print(f"{name}, {message}")
# 调用函数,传入实参
greeting("Alice", "你好!")

输出结果:

Alice, 你好!

2 参数传递方式

在Python中,函数的参数传递方式有以下两种:

1)位置参数是指按照参数顺序传递给函数的参数,这是最常见和最简单的参数传递方式。例如:

# 定义一个函数,接收两个参数
def greeting(name, message):
   """向用户问候"""
   print(f"{name}, {message}")
# 调用函数,按位置参数方式传入实参
greeting("Alice", "你好!")

输出结果:

Alice, 你好!

2)关键字参数是指使用参数名来传递参数,这种方式可以不按照参数顺序传递参数。例如:

# 定义一个函数,接收两个参数
def greeting(name, message):
   """向用户问候"""
   print(f"{name}, {message}")
# 调用函数,按关键字参数方式传入实参
greeting(message="你好!",name="Alice")

输出结果:

Alice, 你好!

3 返回值

函数可以有返回值,也可以没有返回值。如果没有明确说明返回值,则默认返回None。

下面是一个带有返回值的函数实例:

# 带有返回值的函数
def add(a, b):
   return a + b

result = add(1, 2)
print(result)

输出结果:3

4 局部变量和全局变量

在Python中,变量有两种作用域:局部和全局。

1)局部变量是在函数内部定义的变量,只能在函数内部使用。例如:

# 函数内部定义的变量
def test():
   x = 1
   print(x)

test()

输出结果:1

2)全局变量是在函数外部定义的变量,可以在整个程序中使用。例如:

# 函数外部定义的变量
x = 1

def test():
   print(x)

test()

输出结果:1

5 嵌套调用

在Python中,函数的嵌套调用是指一个函数中调用了另一个函数。例如:

# 定义一个函数 greet,用于向指定的姓名打招呼
def greeting(name):
   print("你好! " + name)

# 定义一个函数 introduce,用于获取用户输入的姓名并调用 greeting 函数向其打招呼
def introduce():
   name = input("请输入姓名: ")  # 获取用户输入的姓名
   greeting(name)  # 调用 greeting 函数向用户打招呼

# 调用 introduce 函数开始运行程序
introduce()

输出结果:

请输入姓名: Alice
你好! Alice


6 可变数量的参数

在 Python 中,函数允许接受可变数量的参数,即不确定参数个数的情况下,可以用 *args**kwargs 来表示。其中,*args 表示接收任意数量的位置参数(即没有指定名称的参数),它们被视为一个元组(tuple);**kwargs 表示接收任意数量的关键字参数(即指定名称的参数),它们被视为一个字典(dictionary)。

# 定义一个接收可变数量参数的函数
def describe(*args, **kwargs):
   """描述事物"""
   print(f"args = {args}")
   print(f"kwargs = {kwargs}")
# 调用函数,传入位置参数和关键字参数
describe("apple", "banana", color="red", size="medium")

上面的代码定义了一个可变数量参数的函数 describe,用于描述任意事物。该函数使用了 *args**kwargs 来接收可变数量的参数,并打印它们的值。在函数体内可以对这些参数进行处理。  运行上面的代码,输出如下:

args = ('apple', 'banana')
kwargs = {'color': 'red', 'size': 'medium'}

上面的输出分别是传入的位置参数和关键字参数,被分别打包成了一个元组和一个字典。可以看出,不确定参数个数时,使用可变数量参数可以很方便地接收这些参数,并且能够自由处理。

7 多个返回值

在 Python 中,函数可以返回多个值,即多个表达式用逗号 , 分隔。在函数调用后,可以将返回的多个值解包到多个变量中。

# 定义一个返回多个值的函数
def rectangle_area(x1, y1, x2, y2):
   """计算矩形面积和周长"""
   width = abs(x1 - x2)
   height = abs(y1 - y2)
   area = width * height
   perimeter = 2 * (width + height)
   return area, perimeter
# 调用函数,解包多个返回值
a, p = rectangle_area(0, 0, 5, 3)
print(f"area = {a}, perimeter = {p}")

上面的代码定义了一个返回多个值的函数 rectangle_area,用于计算矩形的面积和周长。该函数接收四个参数,是矩形两个对角线的坐标点。函数体内,使用绝对值函数 abs() 计算矩形的宽度和高度,进而求出面积和周长。  运行上面的代码,输出如下:

area = 15, perimeter = 16

上面的输出分别是矩形的面积和周长。可以看出,返回多个值时,函数将这些值打包成一个元组,在函数调用后可以将它们解包到多个变量中。


感谢关注,将会不断更新并提供最新的内容。


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。