Python零基础入门(三)
·
前言:本文介绍了Python函数的基本概念和使用方法。主要内容包括:1)函数定义与调用,通过def关键字创建可重复使用的代码块;2)参数传递方式,包括位置参数、关键字参数、默认参数和可变参数;3)返回值处理,支持单值和多值返回;4)函数嵌套与变量作用域,区分局部变量和全局变量;5)匿名函数lambda的简洁语法。文章还强调了参数顺序、变量作用域修改等注意事项,为Python函数编程提供了全面的基础指导。
一、函数核心定义
封装可重复执行的代码块,调用时执行,减少冗余。
1.基础格式
def 函数名(参数):
函数体(执行代码)
return 返回值 # 可选
2.基础案例
# 无参数、无返回值
def hello():
print("hello world")
hello()
# 有参数、有返回值
def add(a, b):
return a + b
res = add(3, 5)
print(res)
二、函数参数
1. 位置参数(必传,按顺序匹配)
def func(a, b):
print(a, b)
func(1, 2) # 正确,a=1,b=2
# func(1) # 错误,少传参数
2. 关键字参数(可打乱顺序,指定参数名)
def func(a, b):
print(a, b)
func(b=2, a=1) # 正确,顺序可乱
3. 默认参数(可传可不传,有默认值)
def func(a, b=3):
print(a + b)
func(2) # 正确,b用默认值3,结果5
func(2, 4) # 正确,覆盖默认值,结果6
4. 可变参数(不确定参数个数)
# *args:接收多个位置参数,返回元组
def func(*args):
print(args)
func(1, 2, 3) # 输出 (1,2,3)
# **kwargs:接收多个关键字参数,返回字典
def func(**kwargs):
print(kwargs)
func(name="张三", age=20) # 输出 {'name':'张三','age':20}
三、函数返回值
def add(a, b):
return a + b # 返回计算结果,终止函数
res = add(3, 4)
print(res) # 7
# 无return,默认返回None
def func():
print("test")
res = func()
print(res) # None
# 多个返回值,用逗号分隔,返回元组
def func():
return 1, 2, 3
a, b, c = func()
print(a, b, c)
四、函数调用与嵌套
1. 函数调用
def add(a, b):
return a + b
def sub(a, b):
return a - b
# 直接调用
print(add(5, 3))
# 嵌套调用(函数内调用另一个函数)
def calc(a, b):
return add(a, b) - sub(a, b)
print(calc(5, 3))
2. 函数嵌套(多层)
def outer():
print("outer")
def inner():
print("inner")
inner() # 内部调用
outer()
五、局部变量与全局变量
# 局部变量(函数内定义,仅函数内可用)
def func():
x = 10
print(x)
func()
# print(x) # 错误,外部无法访问
# 全局变量(函数外定义,全局可用)
x = 10
def func():
print(x)
func()
print(x)
# global关键字(函数内修改全局变量)
x = 10
def func():
global x
x = 20
func()
print(x) # 输出20
六、匿名函数(lambda,简化简单函数)
适用于简单逻辑,一行完成,无需def定义。
# 格式:lambda 参数: 表达式(返回值)
add = lambda a, b: a + b
print(add(3, 5)) # 8
# 配合内置函数使用(常用)
lst = [(1, 3), (2, 1), (3, 2)]
lst.sort(key=lambda x: x[1]) # 按元组第二个元素排序
print(lst)
七、注意
-
位置参数必须在关键字参数前面
-
默认参数必须在普通参数后面
-
局部变量无法直接修改全局变量,需用global
-
return后函数立即终止,后续代码不执行
-
匿名函数仅能写一个表达式,逻辑复杂用普通函数
更多推荐
所有评论(0)