分享

Python基础

 excel05 2019-08-02
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]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多