Python 怎么定义函数?超详细Python函数定义方法与实用技巧,新手也能轻松掌握函数编写!
话说,学Python到现在,要问我什么最常用,那我肯定脱口而出:函数!这玩意儿就像乐高积木,把一堆代码封装起来,要用的时候直接拿来拼,省时省力,简直不要太爽。
那Python 怎么定义函数呢?其实超级简单。就好像你要教电脑做一件事,得先告诉它怎么做,对吧?函数就是你写给电脑的“操作手册”。
最基本的函数定义长这样:
python
def 函数名(参数1, 参数2, ...):
# 函数体,就是你要执行的代码
return 返回值 # 可选
def
是关键字,告诉Python:“嘿,我要开始定义一个函数啦!” 后面跟着函数名,你随便起,但是要见名知意,让人一看就知道这个函数是干嘛的。比如,你想写一个计算两个数之和的函数,那就叫add
,多简单!
括号里是参数,就是你要给函数的东西。比如add
函数,你要给它两个数字,它才能帮你算和。参数可以没有,也可以有很多个,用逗号隔开就行。
然后是冒号,别忘了!冒号后面就是函数体了,也就是你要执行的代码。注意缩进!Python是用缩进来判断代码块的,可不是靠大括号。
最后,return
语句是可选的。如果你想让函数返回一个值,就用return
。比如add
函数,肯定要返回计算出来的和嘛。如果没有return
,函数默认返回None
。
举个栗子:
“`python
def add(x, y):
“””
这个函数计算两个数的和。
“””
sum_result = x + y
return sum_result
调用函数
result = add(5, 3)
print(result) # 输出 8
“`
看到了吧,这就是一个简单的add
函数。它接受两个参数x
和y
,计算它们的和,然后用return
返回。
当然,函数还可以有默认参数。啥意思呢?就是你在定义函数的时候,可以给参数一个默认值。如果在调用函数的时候,没有给这个参数传值,那函数就用默认值。
“`python
def greet(name, greeting=”Hello”):
“””
这个函数向指定的人打招呼。
“””
message = greeting + “, ” + name + “!”
return message
调用函数,使用默认greeting
print(greet(“Alice”)) # 输出 Hello, Alice!
调用函数,自定义greeting
print(greet(“Bob”, “Good morning”)) # 输出 Good morning, Bob!
“`
你看,greeting
参数有一个默认值"Hello"
。如果你只传了name
参数,那函数就用"Hello"
打招呼。如果你传了greeting
参数,那函数就用你传的greeting
打招呼。
还有一种特殊的参数叫可变参数,也叫不定长参数。有时候你不知道要传多少个参数给函数,这时候就可以用可变参数。可变参数有两种:一种是*args
,表示接收任意多个位置参数,它们会被打包成一个元组;另一种是**kwargs
,表示接收任意多个关键字参数,它们会被打包成一个字典。
“`python
def print_info(args, *kwargs):
“””
这个函数打印所有传入的参数。
“””
print(“位置参数:”, args)
print(“关键字参数:”, kwargs)
调用函数
print_info(1, 2, 3, name=”Alice”, age=30)
输出:
位置参数: (1, 2, 3)
关键字参数: {‘name’: ‘Alice’, ‘age’: 30}
“`
看到了吧,*args
接收了1
、2
、3
这三个位置参数,**kwargs
接收了name="Alice"
和age=30
这两个关键字参数。
除了上面这些,还有一些高级的函数用法,比如匿名函数(lambda 函数)、装饰器等等。
匿名函数就是没有名字的函数,通常用于简单的、只需要用一次的函数。它的语法是:
python
lambda 参数1, 参数2, ...: 表达式
比如:
python
add = lambda x, y: x + y
print(add(5, 3)) # 输出 8
这个lambda x, y: x + y
就定义了一个匿名函数,它接受两个参数x
和y
,返回它们的和。然后我们把这个匿名函数赋值给add
变量,就可以像普通函数一样调用它了。
装饰器就更厉害了,它可以在不修改函数代码的情况下,给函数增加额外的功能。比如,你可以用装饰器来记录函数的执行时间,或者给函数增加权限验证。
“`python
import time
def timer(func):
“””
这是一个装饰器,用于计算函数的执行时间。
“””
def wrapper(args, kwargs):
start_time = time.time()
result = func(args, **kwargs)
end_time = time.time()
print(f”函数 {func.name} 执行时间: {end_time – start_time:.4f} 秒”)
return result
return wrapper
@timer
def my_function():
“””
这是一个需要计时的函数。
“””
time.sleep(1)
my_function()
“`
@timer
就是装饰器的语法糖,它相当于my_function = timer(my_function)
。timer
函数接收一个函数作为参数,返回一个新的函数wrapper
。wrapper
函数在执行原始函数之前和之后,记录时间,并打印执行时间。
Python函数的功能真是太强大了,可以做的事情也太多了!掌握了函数,你的Python代码水平绝对会提升一个档次!多练习,多实践,你会发现,Python 函数真的是你编程路上最得力的助手。 掌握 Python怎么定义函数 之后,你就能写出更优雅、更高效的代码了!