python函数的用法
Posted 雨中落叶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数的用法相关的知识,希望对你有一定的参考价值。
python函数的用法
目录:
1.定义、使用函数
1.函数定义:def
2.函数调用:例:myprint()
3.函数可以当作一个值赋值给一个变量 例:a=myprint() a()
4.写return return必须是最后一句,不写return返回null
2.函数的参数
1.不带参数的函数
2.带固定参数的函数
3.带可变参数的函数
4.带关键字参数的函数
5.参数顺序:固定、可变、关键字参数 #可变参数最多只能有一个
3.变量的作用范围
1.全局变量:除在函数内声明的变量都是全局变量
2.局部变量:当一个变量同时存在于函数内和函数外,函数内优先使用局部变量
3.函数再调用之前,函数内部的变量必须再调用之前存在
4.global 改的是全局变量
5.nonlocal用在嵌套函数,内层改外层
4.可变量与不变量
1.函数内部不能修改不变量,在内部只是把值传进去,外部仍然是原来的值
2.可变量:列表、字典、集合
3.不变量:数字、字符串、元组
5.匿名函数与高阶函数
1.匿名函数:很短,只用一次
2.高阶函数:
过滤:filter
遍历:map
递归:reduce
排序:sorted
2.函数的参数
print("函数的定义:") print("不带参数的定义:") def myfunc(): print("哈哈") return 1 myfunc() a=myprint() #先将myprint函数执行一遍,将返回值赋给 a print("a的值:",a) print("a的类型",type(a)) b=myprint #b 即myprint函数 b() #调用函数 print("b的值:",b) print("b的类型",type(b)) print("带固定参数的定义:") def myfunc2(a1): c=sum(a1) print(c) myfunc2([1,2]) print("带可变参数的定义:") def myfunc3(*args): c=sum(args) print(c) myfunc3() myfunc3(1) myfunc3(1,2,3) print("固定参数与可变参数:") def myfunc4(a,*args): print(a,args) myfunc4("a","b") myfunc4("a","b","c") print("固定参数、可变参数、关键字参数:") def myfunc5(a,*args,k=2): print(a,args,k) myfunc5(1,2) myfunc5(1,2,3,k=3)
3.变量的作用范围
#全局变量 print("全局变量:") a="sss" for i in a: m=i print(a) print(m) print("局部变量:") def mycount(): a=1 b=2 print("局部a",a) return a+b res=mycount() print(res) print("全局a",a) print("函数内修改全局变量:") d=9 a=3 def myfunc(a1,a2): global a #函数内部修改全局变量 a=4 print("内部a",a) return a1+a2 print(myfunc(a,d)) print("全局a",a) print("嵌套函数变量:") def f1(): a=3 def f2(): nonlocal a #只在嵌套函数中使用,内层修改外层 print(a) a=5 f2() print(a) f1()
4.可变量与不变量
a1="abc" b1=[1,2,3] print("不可变量字符串与可变变量列表的用法") def f1(a,b): a+="d" print(a) b.append(4) print(b) f1(a1,b1) print("字符串是不可变量",a1,"列表是可变量",b1) #字符是不可变量,在函数外值还是原来的值,列表是可变量,在函数内修改,函数外也跟着修改 print("不可变量数字的用法:") c1=66 def f2(c): c+=6 print(c) f2(c1) print("数字是不可变量",c1) print("可变变量集合的用法:") d1={1,4} def f3(d): d.add(7) print(d) f3(d1) print("可变变量集合",d1) print("可变量字典的用法:") e1={1:"x",2:"y"} def f4(e): e[1]="m" print(e) f4(e1) print("可变量字典",e1)
5.匿名函数与高阶函数
filter: filter(function,sequence),function可以是匿名函数或者自定义函数,它会对后面的sequence序列的每个元素判定是否符合函数条件,返回TRUE或者FALSE,从而只留下TRUE的元素;sequence可以是列表、元组或者字符串
map:它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
reduce:reduce(function,iterable),其中function必须传入两个参数,iterable可以是列表或者元组
sorted:函数对所有可迭代的对象进行排序操作。
python 匿名函数与高阶函数 #匿名函数lambda print("匿名函数:") f=lambda i:i*2 print(f(3)) f2=lambda m,n:m*n print(f2(2,4)) print("高阶函数:") #筛选filter print("筛选filter:") result=[("G211","5",""), ("D311","7",""), ("T411","","8"), ("K511","","6") ] print(list(filter(lambda i:i[0][0] in "GD",result))) print(list(filter(lambda i:i[0][0] not in "GD",result))) #遍历map print("遍历map:") list(map(print,filter(lambda i:i[0][0] in "GD",result))) list(map(print,filter(lambda i:i[0][0] not in "GD",result))) list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) print(list(map(abs,[-1,2,-3,4]))) #递归reduce print("递归reduce:") from functools import reduce def add(x,y): return x+y print(reduce(add,[1,2,3,4,5])) print(reduce(lambda i,j:i+j,[1,2,3,4,5])) #排序sorted print("排序sorted:") print(sorted([1,5,7,3,-2])) print(sorted([1,5,7,3,-2],reverse=True))#reverse=True从大到小排序,默认从小到大 l=[(‘a‘, 1), (‘b‘, 2), (‘d‘, 6), (‘e‘, 4), (‘c‘, 3)] print(sorted(l,key=lambda i:i[0])) print(sorted(l,key=lambda i:i[0],reverse=True))
以上是关于python函数的用法的主要内容,如果未能解决你的问题,请参考以下文章