未指定print(j)时在外部循环中打印j-为什么?

时间:2018-12-02 13:00:29

标签: python

(新手问题,请忍受...)

对于以下代码:

x = 4 
for j in range(x):     
    for i in range(x):         
        print(i)         
        x = 2

Python打印以下内容:

0
1
2
3
0
1
0
1
0
1

...,而且我不明白为什么在没有print(j)命令而只有print(i)的情况下,为什么打印出0 1 2 3的第一次迭代。

行“用于range(x)中的j:”和j到底有什么作用?

这是约翰·古塔格(John Guttag)(在MIT课程中使用)的“使用Python进行计算和编程简介”一书中的示例。

1 个答案:

答案 0 :(得分:1)

外部循环for j in range(x):x=4评估一次,这意味着内部循环将用j = 0,1,2,3评估4次。

然后您必须问自己,对表达式x求值时for i in range(x):的值是什么。

在第一个评估x为4时,内部循环以i的0、1、2、3执行。

第二次求值x为2时,对于i,内部循环以0,1执行

对于第三和第四次求值,x也是2,对于i,内部循环以0,1执行。