Python.03.函数使用
创始人
2024-03-21 12:23:58
0

目录

函数与方法的区别

函数的定义

传参的情况

常见传参

其他传参

 函数的返回值

函数嵌套

Lambda表达式

字典排序

map函数

filter函数

函数与方法的区别

直接调用的是函数 ,通过对象点出来的是方法

print("hello")
a = [2, 1, 3]
a.sort()
print(a)

 

函数的定义

常规函数定义,有返回值的,跟无返回值的

def hello(name):print(f"{name} say hello")
​
hello("zhangsan")
​
def add(a,b):return a + b
​
print(add(1, 2))
​
def dele(a,b):print(a - b)
​
print(dele(1, 2))

Python对于参数的传入是没有类型限制的

不过可以通过给参数添加类型,提示调用时应传入的类型

def add(a: int, b: int):return a + b
​
c = add("a", 2)
print(c)

传参的情况

常见传参

1.位置传参
2.关键字传参
3.缺省传参# 位置传参
res(1, 2)
# 关键字传参
res(a=1, b=2)
​
# 缺省参数,给b设置了一个默认值
def res(a, b=3):print(a)print(b)
res(1)
res(1,2)

其他传参

1.可变传参-元组
2.可变传参-字典
# 可变传参-元组
# 
# def aaa(*arr):
#     print(arr)
#     print(type(arr))
#
#
# aaa(1, 2, 3)
# aaa({1, 2, 3}, {1, 2, 3})
# aaa({1, 2, 3})
# aaa(1)
​
# 可变传参-字典
# 
def aaa(**arr):print(arr)print(type(arr))
​
​
aaa(a=1, b=2, c=3, d=4)
aaa(a={1}, b={2}, c={3}, d={4})
aaa(a={1})
aaa(a=1)

 函数的返回值

1.返回值不限类型,所以不需要指定返回类型

2.使用 return 关键字

3.可以通过元组的形式返回多个值

编写一个函数,接受多个参数,返回最大值,最小值与总和

def sum(*arr):min = 0max = 0total = 0for i in arr:min = min if min < i else imax = max if max > i else itotal += ireturn min, max, total
​
​
res = sum(1, 4, 7, 9, 8, 3, 2)
print(res)

函数嵌套

递归求和1-100的和

def sum(n):if n < 2:return nelse:return n + sum(n - 1)
​
​
print(sum(100))

 

Lambda表达式

相当于匿名函数,可以简化目前的函数,在 java 中的流式操作与函数接口有体现。

//常规
Runnable r1=new Runnable() {@Overridepublic void run() {System.out.println("你好");}
};
//lambda表达式
Runnable r2=()->{System.out.println("你好");
};

但是 python 中的表达式只能存在一行代码,使用 python 中的 lambda 来简化函数

#形式: lamdba 参数 : 执行操作/返回值
aaa = lambda: 10
print(aaa)
print(aaa())bbb = lambda a: a + 10
print(bbb)
print(bbb(10))# 接受两个参数
ccc = lambda a, b: a + b
print(ccc(1, 2))# 编写一个函数,接受两个参数,并返回最大值
ddd = lambda a, b: a if a > b else b
print(ddd(2, 1))
print(ddd(2, 3))

字典排序

# 使用 lambda 对字典数据进行排序
persons = [{"name": "张三", "age": 20},{"name": "李四", "age": 17},{"name": "王麻子", "age": 21}
]
persons.sort(key=lambda p: p['age'], reverse=True)
print(persons)

map函数

# 将一个元素中所有的值翻倍 map
nums = [1, 2, 3, 4, 5, 6, 7]
m = map(lambda a: a * 2, nums)
for i in m:print(i)
​
# # 让集合中的对应位置进行相加
nums1 = [1, 2, 3, 4, 5, 6, 7]
nums2 = [2, 3, 4, 5, 6, 7, 8]
m = map(lambda a, b: a + b, nums1, nums2)
for i in m:print(i)
​

filter函数

# 对集合进行筛选
nums = [1, 2, 3, 4, 5, 6, 7]
f = filter(lambda a: a > 5, nums)
for i in f:print(i)

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...