变量与递归函数(第五天)
程序员文章站
2022-04-24 22:03:40
2019-01-09 经过了十天左右的休息,重新开始学习玩蛇 变量与递归函数: 1.局部变量和全局变量: 当局部变量与全局变量同名时,在定义局部变量的子程序内,局部变量起作用,在其他地方全局变量起作用。 global可以在函数中获取全局变量,变量本质上就是全局变量,可读取可赋值;如果函数的内容无gl ......
2019-01-09
经过了十天左右的休息,重新开始学习玩蛇
变量与递归函数:
1.局部变量和全局变量:
当局部变量与全局变量同名时,在定义局部变量的子程序内,局部变量起作用,在其他地方全局变量起作用。
global可以在函数中获取全局变量,变量本质上就是全局变量,可读取可赋值;如果函数的内容无global关键字,优先读取全局变量,只能读取全局变量,无法对全局变量重新赋值,可是对于可变类型,可以对内部元素进行操作
name =["wcb","lyn"] def home(): name.append("baby") print(name) home() print(name) 结果为: ['wcb', 'lyn', 'baby'] ['wcb', 'lyn', 'baby']
name ="wcb" def home(): name = "wcb" def homehome(): nonlocal name #nonlocal,指定上一级变量 name = "lyn" homehome() print(name) print(name) home() print(name) 结果为: wcb lyn wcb
2.递归:
1.必须有一个明确的结束条件
2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3.递归效率不高,递归层次过多会导致栈溢出
3.匿名函数:
lambda 形参:处理逻辑
函数名 = lambda 形参:处理逻辑
函数名()
func = lambda x:x+1 print(func(10))
func1 = lambda x,y,z:(x+1,y+1,z+1) print(func1(1,2,3)) func = lambda x,y,z:x+1,y+1,z+1 #需要自己加括号 print(func(1,2,3))
2019-01-10 16:38:35
上一篇: python的几个高级特性
推荐阅读
-
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
-
详解Javascript函数声明与递归调用
-
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
-
学习C#静态函数及变量的一个精典例子与代码
-
ThinkPHP模板之变量输出、自定义函数与判断语句用法
-
net学习之类与对象、new关键字、构造函数、常量和只读变量、枚举、结构、垃圾回收、静态成员、静态类等
-
学习ASP关于与变量子类型相关的函数
-
JavaScript正则表达式校验与递归函数实际应用实例解析
-
使用缓存方式优化递归函数与lru_cache
-
JavaScript中变量提升与函数提升经典实例分析