- 定义函数
def 函数名():
"函数文档说明"
函数代码(函数要执行的代码)
#coding=utf-8
#求三个数的平均数
def sum(a,b,c):
return a + b + c
def avg(a,b,c):
c = sum(a,b,c)
d = c/3
return d
f = avg(5,6,7)
print(f)
可变类型的全局变量可以在方法里直接修改值,加或者不加global都可以
不可变类型的全局变量在方法里不能直接修改值,必须要加global:
#coding=utf-8
num = 100
def test1():
global num #加这一行才能修改全局变量的值,否则会报错
num num + 2
print(num)
test1()
- 函数的介绍
-
函数返回多个数据,可以通过返回列表、元组、字典的方式来实现。如果不写类型,则默认返回元组类型
-
缺省参数
def test(a,b,c = 3.5):
print(a)
print(b)
print(c)
test(11,22)
test(b = 22,a = 11)
会输出11,22,3.5。没有传入参数,则取默认值。有默认值得参数必须放在最后面。如果不
想放在最后面,则可以在调用时,赋值形参,这样的话,就能一一对应
- 不定长参数
#coding=utf-8
def test(a,b,c,*args,**kwargs):
print(a)
print(b)
print(c)
print(args)
test(1,2,3,4,5,mm = 11,nn = 44)
#输出1,2,3,(4,5),{"mm":11,"nn":44},后面的是一个元组类型和一个字典类型
拆包(难)
- 引用
python中传递的都是引用
可变数据类型:列表、字典
不可变类型:数字、字符串、元组
可变的数据类型不能作为字典的Key,不可变的数据类型可以作为字典的key
a = a + a, a += a两者的区别(对于可变的数据类型来讲):a = a + a会重新拿出a来修
改,所以修改完后地址值会变;a += a是直接在原来的a上做修改,所以地址值不会变
-
递归
-
匿名函数
当函数功能特别简单时,可以使用匿名函数
匿名函数里面不能使用print
sum = lambda a,b: a + b #定义匿名函数
sum(11,22) #调用匿名函数
#匿名函数的使用场景一:
def test(a,b,ccc):
return ccc(a,b)
test(11,22,lambda x,y:x-y) #计算减法
test(11,22,lambda x,y:x+y) #计算加法
#匿名函数的使用场景二:
a = [{"xuhao":10,"age":20},{"xuhao":15,"age":10}]
#sort函数中,key表示按什么来排序
a.sort(key = lambda x:x["xuhao"]) #按xuhao排序
a.sort(key = lambda x:x["age"]) #按age排序
网友评论