Python 基础语法 04 函数


Python函数详解

在Python编程中,函数扮演着至关重要的角色。它们不仅帮助我们将代码组织成可重用的块,还使得代码更加模块化和易于管理。本文将深入探讨Python函数的定义、调用、参数、返回值、作用域、嵌套调用、匿名函数等方面。

什么是函数?

函数(Function)或方法(Method)是一段具有特定功能的代码块,它可以接收输入(参数),执行一系列操作,并可能返回结果。通过将复杂的逻辑封装在函数中,我们可以使代码更加清晰、简洁,并且易于维护和复用。

函数的定义与调用

定义函数

在Python中,使用def关键字来定义一个函数。函数的定义包括函数名、参数列表和函数体。参数列表中的参数是形式参数(形参),它们代表了函数接收的输入值。

def my_function(param1, param2): 
# 函数体 
result = param1 + param2 
return result

在这个例子中,my_function是函数名,param1param2是形参,而函数体则是执行加法操作并返回结果的代码块。

调用函数

要执行函数中的代码,需要使用函数名后跟一对圆括号(可选地包含实参)来调用它。实参是调用函数时传递给函数的实际值。

result = my_function(5, 3) 
print(result) # 输出: 8

函数的返回值

函数可以使用return语句返回一个值给调用者。如果没有return语句,函数将隐式返回Nonereturn语句还可以用来提前退出函数。

def my_function(x): 
if x > 0: 
return x 
else: 
return -x 


print(my_function(5)) # 输出: 5 
print(my_function(-3)) # 输出: 3

函数的参数

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

位置参数

位置参数要求实参和形参在数量上必须一致,且顺序也必须相同。

关键字参数

关键字参数允许通过形参名=值的形式传递参数,这样就不需要关心参数的顺序。

def greet(first_name, last_name): 
print(f"Hello, {first_name} {last_name}!") 


greet(last_name="Doe", first_name="John") # 输出: Hello, John Doe!

缺省参数

缺省参数为形参提供了一个默认值。如果调用函数时没有提供该参数的值,则使用默认值。

def greet(name, greeting="Hello"): 
print(f"{greeting}, {name}!") 


greet("Alice") # 输出: Hello, Alice! 
greet("Bob", "Hi") # 输出: Hi, Bob!

不定长参数

不定长参数分为*args(接收任意多个位置参数)和**kwargs(接收任意多个关键字参数)。

def my_function(*args, **kwargs): 
for arg in args: 
print(arg) 
for key, value in kwargs.items(): 
print(f"{key}: {value}") 


my_function(1, 2, 3, a=4, b=5) 
# 输出: 
# 1 
# 2 
# 3 
# a: 4 
# b: 5

函数的嵌套调用

在一个函数内部调用另一个函数称为函数的嵌套调用。嵌套调用的执行顺序遵循后进先出(LIFO)原则,即最后调用的函数最先执行完毕。

def outer_function(): 
print("开始执行外部函数") 
inner_function() 
print("外部函数执行完毕") 


def inner_function(): 
print("执行内部函数") 


outer_function() 
# 输出: 
# 开始执行外部函数 
# 执行内部函数 
# 外部函数执行完毕

变量的作用域

变量作用域指的是变量的有效范围。在Python中,变量可以分为局部变量和全局变量。

局部变量

定义在函数内部或作为形参的变量是局部变量,它们只能在函数内部被访问。

全局变量

定义在函数外部或在函数内部使用global关键字声明的变量是全局变量,它们在整个脚本文件中都是可见的。

a = 10 # 全局变量 


def my_function(): 
global b 
b = 20 # 声明为全局变量 
print(a) # 访问全局变量 


my_function() 
print(b) # 输出: 20

匿名函数(Lambda表达式)

匿名函数是没有名称的函数,它们通常用于简单的、一次性的操作。Lambda表达式使用lambda关键字定义,其后跟形参列表和冒号,然后是表达式。

add = lambda x, y: x + y 
print(add(5, 3)) # 输出: 8 


# 在filter函数中使用lambda表达式 
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
filtered = filter(lambda x: x % 2 == 0, numbers) 
print(list(filtered)) # 输出偶数列表

总结

Python函数是编程中不可或缺的一部分,它们通过封装复杂的逻辑、提高代码复用性和可维护性,使得编程工作更加高效和愉快。

  • 16
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值