Python-函数
函数
函数具有函数名, 参数和返回值.
- 在模块中但是类之外定义, 作用域是当前模块, 称之为函数.
- 在别的函数中定义, 称之为嵌套函数.
- 在类中定义, 称之为方法.
定义函数
def 函数名(形式参数列表): 函数体 return 返回值
调用函数
-
调用函数的基本形式: 调用函数时传递的实参与定义函数时形参的顺序一致.
-
在调用函数时可以采用"关键字=实参"的形式, 关键字就是定义函数时形参的名称. 实参不再受形参的顺序限制.
参数的默认值
当定义函数时提供了默认值, 如果调用函数时没有提供实参, 则使用默认值.
def rect_area(width_0, height_0): area = width_0 * height_0 return area def print_area(width_1=0, height_1=0): area = rect_area(width_0=width_1, height_0=height_1) print("{0} * {1}长方形的面积: {2}".format(width_1, height_1, area)) width, height = (2, 3) print_area(width, height) # 2 * 3长方形的面积: 6 print_area() # 0 * 0长方形的面积: 0
可变参数
函数可以定义接收不确定数量的参数, 即可变参数.
-
基于元组的可变参数 -
*可变参数
def summary(*numbers): total = 0.0 for number in numbers: total += number print(total) summary(*(30.0, 80.0)) # 110.0 summary(100.0, 20.0, 30.0) # 150.0 -
基于字典的可变参数 -
**可变参数
def show_info(**d): print("----show information----") for key, value in d.items(): print("{0}: {1}".format(key, value)) show_info(**{'a': 1, 'b': 2}) show_info(a=1, b=2, c=3) def add(a, b): return a+b print(add(**{'a': 1, 'b': 2})) # 3
函数类型
Python 中的任意一个函数都有数据类型, 即 function 函数类型.
-
一个函数作为另一个函数返回值使用.
def add(a, b): return a + b def sub(a, b): return a - b def opr(c): if c == '+': return add else: return sub f1 = opr('+') # f1 = add f2 = opr('-') # f2 = sub a, b = (2, 1) print(type(f1)) # <class 'function'> print("{0} + {1} = {2}".format(a, b, f1(a, b))) print("{0} - {1} = {2}".format(a, b, f2(a, b))) -
匿名函数 -
lambda 参数列表: lambda体
def opr(c): if c == '+': return lambda a, b: (a + b) else: return lambda a, b: (a - b)
-
-
一个函数作为另一个函数参数使用.
def add_params(a, b): return a + b def mult_params(func, a, b, c): return func(a, b) * c def mult_dict(func, c, **params): return func(**params) * c a, b, c = (1, 2, 3) r1 = add_params(a, b) r2 = mult_params(add_params, a, b, c) r3 = mult_dict(add_params, c, b=2, a=1) print(r1) # 3 print(r2) # 9 print(r3) # 9 -
过滤函数 -
filter(function, iterable)
-
映射函数 -
map(function, iterable)
def func1(x): return x > 50 def func2(x): return x * 2 data1 = [66, 15, 91, 28, 98, 50] filtered = filter(func1, data1) mapped = map(func2, data1) print(type(filtered)) # <class 'filter'> print(type(mapped)) # <class 'map'> data2 = list(filtered) print(data2) data3 = list(mapped) print(data3)
-
本文作者:Khru
本文链接:https://www.cnblogs.com/khrushchefox/p/16593282.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步