python函数,,函数介绍定义: 函数


函数

介绍

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:

减少重复代码使程序变的可扩展使程序变得易维护

语法定义:

def sayhi():#函数名    print("Hello, I‘m nobody!") sayhi() #调用函数

可以带参数

#下面这段代码a,b = 5,8c = a**bprint(c) #改成用函数写def calc(x,y):    res = x**y    return res #返回函数执行结果 c = calc(a,b) #结果赋值给c变量print(c)

函数参数与局部变量

形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

技术分享图片

默认参数

def stu_register(name,age,country,course):    print("----注册学生信息------")    print("姓名:",name)    print("age:",age)    print("国籍:",country)    print("课程:",course) stu_register("王山炮",22,"CN","python_devops")stu_register("张叫春",21,"CN","linux")stu_register("刘老根",25,"CN","linux")

关键参数

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。

非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式    print(name,age,args) stu_register("Alex",22)#输出#Alex 22 () #后面这个()就是args,只是因为没传值,所以为空 stu_register("Jack",32,"CN","Python")#输出# Jack 32 (‘CN‘, ‘Python‘)

还可以有一个**kwargs

def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式    print(name,age,args,kwargs) stu_register("Alex",22)#输出#Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空 stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")#输出# Jack 32 (‘CN‘, ‘Python‘) {‘province‘: ‘ShanDong‘, ‘sex‘: ‘Male‘}

局部变量

字符串,数值在函数里不能改变全部变量但是 字典 列表 集合 类在函数里能改变全局变量
name = "Alex Li" def change_name(name):    print("before change:",name)    name = "金角大王,一个有Tesla的男人"    print("after change", name)  change_name(name) print("在外面看看name改了么?",name)

输出

before change: Alex Liafter change 金角大王,一个有Tesla的男人在外面看看name改了么? Alex Li

全局变量

names=‘alex‘def chang_name():    global  names    print(‘before change:‘,names)    names=‘haha‘    print(‘after change‘, names)chang_name()print(names)

返回值 

要想获取函数的执行结果,就可以用return语句把结果返回

注意:

函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束如果未在函数中指定return,那这个函数的返回值为None

嵌套函数

name = "Alex" def change_name():    name = "Alex2"     def change_name2():        name = "Alex3"        print("第3层打印",name)     change_name2() #调用内层函数    print("第2层打印",name)  change_name()print("最外层打印",name)

匿名函数

匿名函数就是不需要显式的指定函数

#这段代码def calc(n):    return n**nprint(calc(10)) #换成匿名函数calc = lambda n:n**nprint(calc(10))

匿名函数主要是和其它函数搭配使用,如下

res = map(lambda x:x**2,[1,5,7,4,8])for i in res:    print(i)

高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

def add(x,y,f):    return f(x) + f(y)res = add(3,-6,abs)print(res)

参考 https://www.cnblogs.com/alex3714/articles/5740985.html

python函数

评论关闭