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()等

posted @ 2025-08-01 12:01  luohaoming  阅读(9)  评论(0)    收藏  举报