函数基础(下)
1.函数的基本类型
2.局部变量
3.全局变量
4.引用
5.匿名函数
6.递归函数
函数的基本类型
1.无参数,无返回值,一般用于提示信息打印
2.无参数,有返回值,多用在数据采集,比如获取系统信息
3.有参数,无返回值,多用在设置某些不需要返回值的参数设置
4.有参数,有返回值,一般是计算型的,需要参数,最终也需要返回的结果
#无参数,无返回值
def mvprint():
print("-"*20)
#无参数,有返回值
def mycpu():
#获取cpu信息
return info
#有参数,无返回值
def set(a):
pass
#有参数,有返回值
def cal(a,b):
c = a + b
return c
局部变量和全局变量
1.局部变量: 是在函数内部定义的变量,作用域仅仅局限于函数内部(仅在调用对应函数时才可以御用)
①不同函数,可以定义相同的局部变量,但互相不会产生影响
②为了临时保存数据,需要在函数种定义来进行存储
def printinfo():
name='peter'
print('{}'.format(name))
pass
def TestMethod():
name='刘德华'
print(name)
psss
printinfo()
Testmethod()
结果
'peter'
'刘德华'
2.全局变量:定义在函数之外的变量,
局部变量的优先级高于全局变量,当全局变量和局部变量出现重复命名时,程序会优先执行函数内部定义的变量
在函数中修改全局变量
pro='计算机科学'
def change_global():
global pro
pro='打游戏'
引用重要
在python当中,万物皆对象,在函数调用的时候,实参传递的就是对象的引用,即地址
函数内部的处理是否会影响到函数外部的数据变化
str, int, float,元组在传递参数时,数据和地址都是唯一的,列表和字典在传递参数时,数据可变,但地址不变
匿名函数
1.python 中使用lambda关键字创建匿名函数,
所谓匿名即这个函数没有名字不用def关键字创建标准的函数
lambda 参数1,参数2,参数3: 代码表达式
①匿名函数冒号后面的表达式有且只有一个,是表达式,不是语句
②匿名函数自带return,而这个return的结果就是表达式计算后的结果
示例
利用lambda表达式计算两个数的和:
test=lambda x,y:x+y #用变量去调用匿名函数
test(1,3)
test(4,5)
普通情况
def test(x,y):
return x+y
2.延申
lambda 与三元运算
如下语句
if a:
b
else:
c
用lambda等效表达
b if a else c
这样的表达式(三元运算)能够放在lambda中,它们能够在lambda函数中来实现选择逻辑:
age=25
print('大于24' if age>24 else '小于24') #可以实现
greater=(lambda x,y:x if x>y else y)
print(greater(3,5))
greater=(lambda x,y:x if x>y else y)(3,5)
print(geater) #两者结果一样
递归函数
如果一个函数在内部不调用其他的函数,而是自己本身的话,这个函数就是递归函数
递归函数必须有一个结束条件,否则无法结束,直到达到最大递归深度然后报错
示例
#求阶乘5!=5*4*3*2*1
def factorial(n):
if n==1:
return 1
return n*factorial(n-1)