在python

时间:2018-04-17 12:53:38

标签: python-3.6

name='ABCDE'
length=len(name)

for i in range(0,length):
    print(name[i],'\t',end='')
    print(i, '\t', end='')
    i+=1
    print(i,'\t',end='')
    print('hello')

Output:
A   0   1   hello
B   1   2   hello
C   2   3   hello
D   3   4   hello
E   4   5   hello

我无法理解第二行输出。 在第二次迭代中,i的值应再次在for循环中递增,输出应为:

C  2  3  hello

等在其他迭代中。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那么你就是假设

i+=1

将影响i下一次迭代。

python中的语法for i in range():意味着在每个迭代周期的开始,i将采用range()提供的下一个值,而不管正文中的赋值。 / p>

在你的情况下,你有

range(0, length)

评估为:

range(0,5) # == [0,1,2,3,4]

因此i采用04的值。

要说服自己,试试这个:

for i in range(0,5):
    print(i)
    i = 1000 # any number

打印:

0
1
2
3
4

请参阅Scope of python variable in for loop