1、函数的文档说明,可以通过help(helpTest)查看函数说明,类似于备注函数功能
2、在函数中可以调用全局变量,但是需要先global 声明,全局变量值跟随改变,
类似于C#中的 ref 功能
3、在自定义函数返回值时,一般有多种可能,
多个返回值: 一个返回值
元祖 列表 字典 字符串、int类型,
( )、[ ] 、 { }
如果返回多个值没有任何东西,默认为元组,也可以单独拆分单独接受返回值
举例:
def test1():
return 11,12
result=test1()
a,b=test1()
print("*“
30)
print(type(result))
print(result)
print("
”*30)
print(type(a))
print(a,b)
=============== RESTART: D:/Python/Test/自定义函数元祖测试.py ===============
(11, 12)
(11, 12)
4、不定长参数
def test(a,b,*abc,**kwargs):
print(a)
print(b)
print(abc)
print(kwargs)
test(11,22,33,44,55,66,77,88,99,mm=11,nn=44)
一个 *参数 里面代表多余的参数,输出为元组
**参数里面代表有命名参数输出为字典
当列表/元组在当做实参传递的时候,如果前面有一个*,表示对其进行解包,
意思是: [111,222,333]------->111,222,333
当字典当做一个实参进行传递的时候,如果前面有俩个*,表示对其进行解包
意思是:{“aa”:100,”bb”:200}------------>aa=100,bb=200
=================== RESTART: D:/Python/Test/不定长参数.py ===================
11
22
(33, 44, 55, 66, 77, 88, 99)
{‘mm’: 11, ‘nn’: 44}
5、引用
在参数中注意+=如此类的用法,
字符不会改动,
列表会改变,
举例:
def test1(a,b):
print(a)
print(b)
a+=a
b+=1
a=[11,22]
b=12
print(a)
test1(a,b)
print(a)
print(b)
[11, 22]
[11, 22]
12
[11, 22, 11, 22]
12
6、递归:函数内调用函数本身
def test(num):
if(num>1):
return num*test(num-1)
else:
return 1
x=test(20)
print (x)
================== RESTART: D:/Python/Test/递归函数用法.py ==================
2432902008176640000
7、匿名函数: 用lambda替代一句非常简单的函数
当做参数进行传递
特别简单的函数可以使用
举例:
在字典之中按照key对应的大小进行排序
def test(a,b):
return a+b
aaa=lambda a,b:a+b
print(test(11,12))
print(aaa(9,10))
print("*"*20)
b=[{“xuhao”:22,“age”:18},{“age”:37,“xuhao”:40},{“xuhao”:32,“age”:12},{“xuhao”:17,“age”:16}]
print (b)
b.sort(key=lambda x:x[“age”])
print (b)
==================== RESTART: D:/Python/Test/匿名函数.py ====================
23
19
[{‘age’: 18, ‘xuhao’: 22}, {‘age’: 37, ‘xuhao’: 40}, {‘age’: 12, ‘xuhao’: 32}, {‘age’: 16, ‘xuhao’: 17}]
[{‘age’: 12, ‘xuhao’: 32}, {‘age’: 16, ‘xuhao’: 17}, {‘age’: 18, ‘xuhao’: 22}, {‘age’: 37, ‘xuhao’: 40}]
从大到小进行排序,加了个reverse=True