Python函数总结
Python函数总结
1.函数定义
格式:
def function_name(parameters): #function_name:函数名 parameters:参数
"""docstring"""
#函数体
return value #value:返回值
2.函数参数
位置参数:按顺序传递的参数
关键字参数:通过参数名指定
默认参数:定义时指定默认值
可变参数:
args:接收任意数量的位置参数,作为元组
def calculate_average(*args):
"""计算任意数量数字的平均值"""
if not args: #处理无参数情况
return 0
return sum(args)/len(args)
#调用示例
print(calculate_average(1,2,3)) #输出2.0
print(calculate_average(10,20,30,40)) #输出25.0
print(calculate_average()) #输出0
kwargs:接收任意数量的关键字参数,作为字典
def build_profile(**kwargs):
"""构建用户资料字典"""
profile={
'name':kwargs.get('name','匿名'),
'age':kwargs.get('age',0),
'email':kwargs.get('email','未提供')
}
#添加额外信息
profile.update({k:v for k,v in kwargs.items()
if k not in['name','age','email']})
return profile
#调用示例
print(build_profile(name="张三",age=25,city="北京"))
#输出:{'name':'张三','age':25,'email':'未提供','city':'北京'}
print(build_profile(age=30,hobby='编程',company='百度'))
#输出:{'name':'匿名','age':30,'email':'未提供','hobby':'编程','company':'百度'}
3.返回值
使用return语句返回值
可以返回多个值(实际上是返回一个元组)
没有return语句或return不带值时返回None
4.作用域
局部变量:函数内部定义的变量
全局变量:函数外部定义的变量,使用global关键字可在函数内修改
5.高阶函数
接收函数作为参数或返回函数的函数
常见高阶函数:
map()函数
对迭代器中的每个元素应用指定函数,返回包含结果的新迭代器
#计算列表中每个元素的平方
nums=[1,2,3]
squares=map(lambda x:x**2,nums)
print(list(squares)) #输出:[1,4,9]
filter()函数
筛选满足条件的元素,返回通过测试的元素组成的新迭代器
#筛选列表中的偶数
numbers=[1,2,3,4,5]
evens=filter(lambda x:x%2==0,numbers)
print(list(evens)) #输出[2,4]
reduce()函数
通过积累运算将序列元素缩减为单一结果
from functools import reduce
#计算列表中所有元素的乘积
nums=[1,2,3,4]
product=reduce(lamnda x,y:x*y,nums)
print(product) #输出:24
6.匿名函数
格式:
lambda arguments:expression #arguments:参数列表 expression:表达式
(1)与高阶函数配合使用
#对列表元素平方
nums=[1,2,3]
squared=list(map(lambda x:x**2,nums)) #[1,4,9]
#过滤偶数
evens=list(filter(lambda x:x%2==0,nums)) #[2]
#按字符串长度排序
words=["apple","bee","cherry"]
sorted_words=sorted(words,key=lambda s:len(s)) #["bee","apple","cherry"]
(2)简化逻辑
#普通函数 vs lambda
def add(a,b):
return a+b
addd_lambda=lambda a,b:a+b #等效但更简短:ml-citation{ref="S"data="citationList"}
(3)在列表内使用
#生成函数列表
funcs=[lambda x,i=i:x+i for i in range(3)] #正确捕获当前i值:ml-citation{ref="S"data="citationList"}
print(funcs[0](10)) #输出10+0=10
7.递归函数
1)函数调用自身来实现循环或分治算法
什么是递归?
递归是指一个函数在其定义中直接或间接调用自身的过程,递归通常用于将复杂问题分解为更小的相似子问题,直到子问题足够简单可以直接解决
2)递归的基本结构
一个完整的递归函数通常包含两个部分:
基线条件(Base Case):问题可以被直接解决的情况,防止函数无限递归
递归条件(Recursive Case):函数调用自身来解决规模更小的子问题
3) 递归示例 1:计算阶乘
n的阶乘(n!)是所有小于等于n的正整数的乘积
def dg(n):
#基线条件:0的阶乘是1
if n==0:
return 1
#递归条件:n!=n*(n-1)!
else:
return n*dg(n-1)
#使用示例
print(dg(5))#输出:120(5!=5x4x3x2x1x1)
8.内置函数
Python提供了许多内置函数,如len(),print(),range(),type()等
浙公网安备 33010602011771号