Python基础 --函数(三) 一、局部变量和全局变量 局部变量:在函数内部定义的变量,用域仅局限于函数内部 全局变量:在函数外部定义,可以在程序的任何位置访问的变量,并且可以多次访问; 在函数内部不能直接修改全局变量,如果要修改,使用global声明 示例-1: #全局变量 x = 100 #参数x1是局部变量 def f( x1 ) : #局部变量 x2 = 20 print(x) 示例-2: #如果想在函数体外使用函数体内定义的变量,须使用global关键字 def f( ) : #全局变量 global x x = 100 print(x) f() x = x + 1 print(x) 结果: 100 101 示例-3: 当全局变量和局部变量重名时候,在函数内优先使用局部变量 x = 10 def f( ) : x = 100 print(x) f() 结果:100 示例-4: x = 10 def f( ) : #全局变量 global x x = 100 print(x) f() #global定义的x在函数内部将x值修改:x=100 x = x + 1 print(x) 结果: 100 101 二、递归函数 如果在函数内部调用自己本身,那么这个函数是递归函数。 递归效率有所降低,能用循环实现的,尽量还是用循环实现 示例:斐波那契数列 斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、 def feb(n): if n == 1: return 1 if n == 2: return 1 else: y = feb(n - 2) + feb(n - 1) return y y = feb(10) print(y) 三、匿名函数 python 使用 lambda 来创建匿名函数。语法: lambda [arg1 [,arg2,.....argn]]:expression ":"左侧是参数,右侧是返回值 示例-1: f = lambda x : x + 1 y = f(10) print(y) 结果:11 上面的函数类似于: def f(): return x + 1 示例-2:map函数运算 list1 = [1,2,3] #使用map函数映射列表list1的值到一个匿名函数中, #匿名函数的作用是计算每个变量的平方 m = map(lambda x : x**2 , list1) #将map对象m转换为list对象 list2 = list(m) print(list2) 结果:[1 4 9] 示例-3: list1 = [1,2,3] list2 = [4,5,6] #计算两个列表的和 m = map(lambda x ,y : x + y , list1,list2) #将map对象m转换为list对象 list = list(m) print(list) 结果:[5, 7, 9] |
|