@变量作用域(变量由作用范围限制)
分类:按照作用域分类
1,全局(global):在函数外部定义。【在整个全局变量都有效,在局部也是可以使用的,即在函数内部也可以访问函数外部定义的变量】
2,局部(local):在函数内部定义【只能在局部范围使用,局部变量在全局是无法使用的】
LEGB原则:
L:(local)局部作用域
E:(Enclosing function locale)外部嵌套函数作用域
G:(Global module)函数定义所在模块作用域
B:(Buildin)python内置模块的作用域
##提升局部变量为全局变量(使用global)
##globals,locals 内置函数(可以通过globals和locals显示局部变量和全部变量)
##eval()内置函数【把一个字符串当成一个表达式来执行,返回表达式执行的结果】
语法:eval(string_code, globals=None, locals=None)
##exec()内置函数【跟eval()功能类似,但不返回结果】
语法:exec(string_code, globals=None, locals=None)
##递归函数(函数直接或者间接调用自己)【优点:简洁,容易理解。缺点:对递归的深度有限制,消耗资源较大。python对递归深度有限制,超过限制报错】
经典案例:(斐波那契数列)
def fb(n):
if n==1 or n==2:
return 1
return fb(n-1)+fb(n-2)
res=fb(35)
print("res:",res)
#内置数据结构(变量函数:list,set,dict,tuple)
## list (一组有顺序的数组的组合)
例: l = [1,2,3,4,5]
##列表的操作
访问:使用下表索引
删除:del命令删除
切片:对列表进行任意一段的截取 l[ 1: 2] l[ 0:6:2](第三位为截取跨辐即隔几个取哪个数,可为负数,负数表示从尾至头取值)
1,截取范围,含左下标不含右下标
2,下标值可以为空,如不写,默认为0,右下标一般是要截取数加一的值
###列表的遍历(for and while)
for 的例子:
for i in range(0,99): print(i)
while 的例子:
a = [1,2,3,4,5] length = len(a) ins = 0 while ins <length: print(a[ins]) ins += 1
##双层列表循环或多层循环(列表的长度于关键字的个数必须一一对应,否则报错)
a= [["one", 1],["two", 2],["three", 3]] for k,v in a: print(k, v) # 写过java and c++的程序员就是这么干的 for i in range(0, len(a)): print(a[i]) i += 1
##列表内涵:list content (1,通过简单的方法创建新的列表。2,过滤原来list中的内容并放入新的列表。3,列表生成式可以嵌套 )
a = [1,2,3] b = [i*10 for i in a] print(b)
嵌套 例:
a = [1,2,3] b = [10,20,30] c = [m+n for m in a for n in b] print(c) for m in a: for n in b: print(m+n, end=" ") print()
###关于列表的常用函数(len(求长度), list(格式转换))