python中for循环变量作用域及用法 |
您所在的位置:网站首页 › plc编程循环 › python中for循环变量作用域及用法 |
这篇文章主要介绍了python中for循环变量作用域及用法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧 在讲这个话题前,首先我们来看一道题: 代码1: 1 2 3 def foo(): return [lambda x: x**i for i in range(1,5,2)] print([f(3) for f in foo()]) 伙伴们,你们认为这里产生的结果是什么呢?我们再来看下这题的变体: 代码:2 1 2 3 4 5 6 7 8 def foo(): functions=[] for i in range(1,5,2): def inside_fun(x): return x ** i functions.append(inside_fun) return functions print([f(3) for f in foo()]) 这两题的结果是一样的:都是[27,27]。我相信大部分的伙伴也都会有个疑问,为什么不是[3,27]呢? 这里的就是我们今天要说的for循环中的变量作用域,因为for循环不是一个函数体,所以for循环中的变量i的作用域其实和for循环同级,即类似下面代码 代码3: 1 2 3 4 5 6 def foo(): i=None for i in range(1,5,2): pass print(i) foo() # 结果为3,即循环结束i的最终值 另外因为python运行到代码行时才会去查找该变量的作用域,所以代码1和代码2中的i值在调用的时候为for循环最终值3,所以结果都是执行x**3。 ps:下面看下python中for循环的用法 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法模式:for iterating_var in sequence: in 字面意思,从某个集合(列表等)里顺次取值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #遍历数字序列 the_count=[1,2,3,4,5] for number in the_count: print(f"This is count {number}") 输出结果: This is count 1 This is count 2 This is count 3 This is count 4 This is count 5 #遍历一维字符串数组 fruits=['apples','oranges','dimes','quarters'] for fruit in fruits: print(f"A fruit of type:{fruit}") 输出结果为: A fruit of type:apples A fruit of type:oranges A fruit of type:dimes A fruit of type:quarters #遍历字符串 list_python='python' for j in list_python: print(f"{j}") 输出结果为: p y t h o n #通过序列索引迭代 elements=[]#列表为空 for i in range(0,6):#012345 print(f"Adding {i} to the list.") elements.append(i)#得到elements=[0,1,2,3,4,5] #len(elements)长为6,range(len(elements))==range(6) for i in range(len(elements)): print(f"Elemnet was:{i}") 输出结果为: Adding 0 to the list. Adding 1 to the list. Adding 2 to the list. Adding 3 to the list. Adding 4 to the list. Adding 5 to the list. Elemnet was:0 Elemnet was:1 Elemnet was:2 Elemnet was:3 Elemnet was:4 Elemnet was:5 以上所述是小编给大家介绍的python中for循环变量作用域及用法详解,希望对大家有所帮助。 来源:微点阅读 https://www.weidianyuedu.com |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |