Python函数

  • 定义函数

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()
  • 函数的介绍
  1. 函数返回多个数据,可以通过返回列表、元组、字典的方式来实现。如果不写类型,则默认返回元组类型

  2. 缺省参数

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。没有传入参数,则取默认值。有默认值得参数必须放在最后面。如果不

想放在最后面,则可以在调用时,赋值形参,这样的话,就能一一对应

  1. 不定长参数
#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},后面的是一个元组类型和一个字典类型

拆包(难)

  1. 引用

python中传递的都是引用

可变数据类型:列表、字典

不可变类型:数字、字符串、元组

可变的数据类型不能作为字典的Key,不可变的数据类型可以作为字典的key

a = a + a, a += a两者的区别(对于可变的数据类型来讲):a = a + a会重新拿出a来修

改,所以修改完后地址值会变;a += a是直接在原来的a上做修改,所以地址值不会变

  1. 递归

  2. 匿名函数

当函数功能特别简单时,可以使用匿名函数

匿名函数里面不能使用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排序

你可能感兴趣的:(Python函数)