在讲这个话题前,首先我们来看一道题:
代码1:
def foo (): 返回(λx: x * *我因为我在范围(1、5、2)] 打印([(3)f foo ()))
伙伴们,你们认为这里产生的结果是什么呢?我们再来看下这题的变体:
代码:2
def foo (): 函数=[] 我的范围(1、5、2): def inside_fun (x): 返回x * *我 functions.append (inside_fun) 返回功能 打印([(3)f foo ()))
这两题的结果是一样的:都是27日,27日。我相信大部分的伙伴也都会有个疑问,为什么不是[3,27]呢?
这里的就是我们今天要说的对循环中的变量作用域,因为为循环不是一个函数体,所以,循环中的变量我的作用域其实和为循环同级,即类似下面代码
代码3:
def foo (): 我=我的范围(1、5、2): 通过 打印(我) foo() #结果为3,即循环结束我的最终值 >之前另外因为python运行到代码行时才会去查找该变量的作用域,所以代码1和代码2中我的值在调用的时候为为循环最终值3,所以结果都是执行x * * 3。
Python循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法模式:iterating_var序列:
字面意思,从某个集合(列表等)里顺次取值
#遍历数字序列 the_count=[1、2、3、4、5) 在the_count数量: 打印(f“这是计数{号码}”) 输出结果: 这是数1 这是数2 这是数3 这是数4 这是数5 #遍历一维字符串数组 水果=[‘苹果’,“橙子”,“角”,“季度”) 水果:水果的 打印(f”类型的水果:{水果}”) 输出结果为: 类型的水果:苹果 类型的水果:橘子 一种水果的类型:角 一种水果的类型:季度 #遍历字符串 list_python=' python ' 在list_python j: 打印(f“{j}”) 输出结果为: p y t h o n #通过序列索引迭代 元素=[]#列表为空 因为我在范围(0,6):# 012345 打印(f“向列表添加{我}”。) elements.append (i) #得到元素=[0,1,2,3,4,5] # len(元素)长为6,范围(len(元素))==范围(6) 因为我在范围(len(元素): 打印(f“Elemnet是:{我}”) 输出结果为: 0添加到列表中。 1添加到列表中。 2添加到列表中。 3添加到列表中。 4添加到列表中。 5添加到列表中。 Elemnet是:0 Elemnet是:1 Elemnet是:2 Elemnet是:3 Elemnet是:4 Elemnet是:5
以上所述是小编给大家介绍的python中循环变量作用域及用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持。
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
python中循环变量作用域及用法详解