为了账号安全,请及时绑定邮箱和手机立即绑定

python中 for循环的执行流程?

python中 for循环的执行流程?

ITMISS 2019-02-07 10:18:44
squares = []   for x in range(1, 5):     squares.append(x)    print(squares)结果是[1] [1, 2] [1, 2, 3] [1, 2, 3, 4]我的理解如下, 请问这是对的吗? 还是我强行解释?x = 1, append(x)将1添加到列表. 此时squares = [1]x = 2, 在列表squares = [1]的基础上,将数据2增加进去, 所以squares = [1, 2]依次列推.
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

从你的代码说起:

1 squares = []  
2 for x in range(1, 5):3     squares.append(x)4     print(squares)

第一行:squares = [] 定义了一个类型为列表的 squares 变量, 注意这个变量的作用域,这个变量是在 for 循环之外 。说得再直白点,就是变量 squares 从一开始进行了初始化,它的 id 在这段代码中是固定的。
第二行:定义了 for 循环为 4 重循环。
第三行:将变量 x 的值保存到列表 squares 的 尾部 
第四行:每次循环都要打印出来变量 squares 的 当前 值。

我们看代码的运行情况,第一行定义了变量 squares 为空列表,再往下三行代码是 for 循环结构体,并进行了 4 次 循环。那么第一次循环的时候,变量 x 的值是 1 ,被保存到列表 squares 中,此时,列表的 当前 值是 [1],第二次循环的时候,变量 x 的值是 2 ,被保存到当前的列表的尾部,也就是 [1] 的尾部,那就成为了 [1, 2],以此类推。

所以你可以通过下面的代码看到,每次循环,变量 squares 这个列表的 id 是不变的。

1 squares = []  
2 for x in range(1, 5):3     squares.append(x)4     print(squares)5     print(id(squares))

当然,如果你把对变量 squares 的定义放入 for 循环结构体中,它的 id 是会变化的吗,你可以用这个代码试试。

1 for x in range(1, 5):2     squares = []  
3     squares.append(x)4     print(squares)5     print(id(squares))


查看完整回答
反对 回复 2019-02-19
  • 2 回答
  • 0 关注
  • 1402 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信