python 变量作用域和列表集合字典元组

@变量作用域(变量由作用范围限制)

分类:按照作用域分类

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(格式转换))

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值