a=a_add(a)
print('a现在的值是:',a)
运行结果:
a的初值: 1
a现在的值是: 2
对比程序4和程序3不难发现,其实程序4只是简单的把函数的参数x变成了a,这个a的实质和程序3中的x还是一样的 。这进一步证实,函数中的a是局部变量,与主程序的全局变量a有着本质的区别 。
程序5:
a=1
def a_add():
global a
a+=1
print('a的初值:',a)
a_add()
print('a现在的值是:',a)
运行结果:
a的初值: 1
a现在的值是: 2
程序5和程序2相比较,仅仅是在函数中添加了一个定义“global a”,此时的局部变量a就可以当做全局变量使用,由于它和全局变量a同名 , 自然也就不用区分a究竟是全局变量还是局部变量了,在主程序和该函数内都可以访问、修改变量a的值了 。
虽然使用global可使变量使用起来非常方便,但也容易引起混淆,故在使用过程中还是谨慎为好 。
12.3 函数的递归与嵌套
递归,就是函数调用它自身 。递归必须设置停止条件,否则函数将无法终止 , 形成死循环 。
以计算阶乘为例:
def func(n):
if n==1:
return 1
else:
return n*func(n-1) #func( )调用func( )
print(func(5))
运行结果为:120
嵌套,指在函数中调用另外的函数 。这是程序中常见的一种结构 , 在此不再赘述 。
匿名函数
Python中可以在参数前加上关键字lambda定义一个匿名函数,这样的函数一般都属于“一次性”的 。
例如:
程序1:这是一个常规的函数定义和调用 。
def f_add(x,y):
return x+y
print(f_add(2,3))
输出结果:5
程序2:使用lambda定义匿名函数 。
f_add=lambda x,y:x+y
print(f_add(2,3))
输出结果:5
从上面的代码可以看出,使用lambda仅仅减少了一行代码 。f_add=lambda x,y:x+y中的f_add不是变量名,而是函数名 。程序1和程序2的print( )语句中的参数都是一样的——调用函数f_add( ) 。所以,匿名函数并没有太多的优点 。
python函数中局部变量与全局变量遵守规则(1)简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名变量,其值不变 。
(2)简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变 。
(3)对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值 。
(4)如果函数内部真实创建了组合数据类型变量 , 无论是否有同名全局变量,函数仅对局部变量进行操作 , 函数退出后局部变量被释放,全局变量值不变 。
*《python语言程序设计基础》.高等教育出版社
Python函数及变量的定义和使用def函数名():
函数体
return返回值
def 函数名(非可选参数,可选参数):
函数体
return 返回值
def 函数名(参数 , *b):
函数体
return 返回值
函数名 = lambda 参数 : 表达式
例1:f = lambda x , y:x + y
调用:f(6 + 8)输出:14
例2: f = lambda : "没有参数的lambda函数!"
调用: print(f())输出: 没有参数的lambda函数!
python函数即变量的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python函数对变量的作用、python函数即变量的信息别忘了在本站进行查找喔 。
推荐阅读
- wps图怎么转word,wps文档如何转图片
- 有什么直播可以连麦的,主播直播连麦用的什么软件
- 绿色智能商品如何推广出售,绿色智能化技术是什么
- 转pdf格式软件,免费转pdf格式软件
- php网站配置数据库 php配置mysqli
- html5会员注册页面教程,html制作会员登系统录页面
- 下载app官方网站,体彩下载app官方网站
- 明星直播剪辑教程,明星直播怎么挣钱
- vb.netgoto的简单介绍