函数
程序员文章站
2022-03-19 11:55:50
...
文章目录
函数
一.函数的基础用法
1.函数的定义
def my_add(a, b):
"""
计算两个数的和
:param a:第一个数
:param b:第二个数
:return:返回的和
"""
c = a + b
return c
res = my_add(3,4)
print(res)
2.函数的默认值,直接调用等
def my_add(a, b, c=666, d=44):
print(c)
print(d)
my_add(3, 4, d=3)
这里说明一下,函数的默认值必须放在最后,而关键字调用的话要也要放在后面,不过这个东西实在不行就试试就行,也不用太多记
def my_add(a, b, c=666, d=44):
print(a)
print(b)
print(c)
print(d)
# my_add(3, 4, d=3)
my_add(b=3, a=5)
这是显示说明关键字取值可以不按照顺序,只要记住永远让位置参数放前面就行
3.不定长接收(args,kwargs)
args是元组,接收的是值,而kwargs接受的是键值对
def run(*args,**kwargs):
print(args) #元祖
print(kwargs) #字典
print(type(args))
print(type(kwargs))
run(3,4,a=5,b=6)
输入调用严格按照顺序
def run(*args,**kwargs):
print(args) #元祖
print(kwargs) #字典
list1 = {1,2,3,4,5}
tuple1 = (2,4,6)
run(*tuple1)
dict1 = {'zxc': 4, 'na': 2}
run(*list1,**dict1)
记住导入list,dict,tuple等时候一定要加*,**不然会出问题,具体问题具体分析。
4.内置函数
file:///C:/Users/%E5%BC%A0%E5%AD%A6%E6%88%90/AppData/Local/Temp/BNZ.5d2409b25956ad8/6.21/07-python3%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0%E5%A4%A7%E5%85%A8%20(1).html
这是调用链接,忘记怎么用就百度
def test1(w):
if w > 2:
return w
a = 'c+d+f'
c = 1
d = 2
f = 3
print(eval(a))
l1 = [c, d, f]
print(list(filter(test1, l1)))
这是两个过滤器,eval可以去掉括号来执行,而filter()可以直接加上函数来运行,实现过滤,map可以将数据放入函数里面批量操作
def test1(w):
return 10*w
a = 'c+d+f'
c = 1
d = 2
f = 3
print(eval(a))
l1 = [c, d, f]
print(list(map(test1, l1)))
[外链图片转存失败(img-U63GMa11-1564987369984)(…/…/AppData/Roaming/Typora/typora-user-images/1562651842399.png)]
zip函数,功能很好,能拼接成字典
l1 = [1, 12, 3, 3]
l2 = ['x', 'y', 'u', 'w']
print(dict(zip(l1,l2)))
不过这些后来都要进行格式转换,因为返回的都是地址
二.函数作用域
num = 100
def test():
num = 200
print(num)
print(num)
test()
print(num)
2.1.函数中定义全局变量(global)
num = 100
def test():
global num
num = 200
print(num)
print(num)
test()
print(num)
2.2函数上一级的变量nonlocal
def test1():
num = 100
def test2():
nonlocal num
num = 200
print(num)
test2()
print(num)
test1()
注意:定义的时候不能是上一级没有的变量
三.函数的闭包
def test(num1):
print(num1)
def test1(num2):
res = num1 + num2
return res
return test1
res = test(66)
print(res(88))
这就是闭包。其实第一次res = test(66)执行后的res就已经是test1了,所以这样res不调用就不会被释放掉因为是函数没调用这样就能保留数据了
下一篇: 如何通过垃圾站群月赚一万
推荐阅读
-
在Python中使用itertools模块中的组合函数的教程
-
讲解.NET环境下绘制模糊数学中隶属函数分布图第1/5页
-
Python函数式编程实例详解
-
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
-
php回调函数处理数组操作示例
-
PHP json_encode() 函数详解及中文乱码问题
-
Python字符串处理函数简明总结
-
PHP explode()函数的几个应用和implode()函数有什么区别
-
Python2.x和3.x下maketrans与translate函数使用上的不同
-
浅析PHP中call user func()函数及如何使用call user func调用自定义函数