python中循环变量作用域及用法详解

  

在讲这个话题前,首先我们来看一道题:

  

代码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中循环变量作用域及用法详解