what happened when using the same variable in two layer loops in python?

前端 未结 6 1742
星月不相逢
星月不相逢 2021-01-12 14:18

I test the following code:

for i in range(3):
    for i in range(3,5):
        print \"inner i: %d\"%(i)
    print \"outer i: %d\"%(i)

and

6条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-12 14:32

    Check @heltonbiker answer :

    >>> for i in range(3):
        print "1-",locals()
        for i in range(3,5):
            print "2-",locals()
    
    
    1- {'__builtins__': , '__package__': None, 'i': 0, '__name__': '__main__', '__doc__': None}
    2- {'__builtins__': , '__package__': None, 'i': 3, '__name__': '__main__', '__doc__': None}
    2- {'__builtins__': , '__package__': None, 'i': 4, '__name__': '__main__', '__doc__': None}
    1- {'__builtins__': , '__package__': None, 'i': 1, '__name__': '__main__', '__doc__': None}
    2- {'__builtins__': , '__package__': None, 'i': 3, '__name__': '__main__', '__doc__': None}
    2- {'__builtins__': , '__package__': None, 'i': 4, '__name__': '__main__', '__doc__': None}
    1- {'__builtins__': , '__package__': None, 'i': 2, '__name__': '__main__', '__doc__': None}
    2- {'__builtins__': , '__package__': None, 'i': 3, '__name__': '__main__', '__doc__': None}
    2- {'__builtins__': , '__package__': None, 'i': 4, '__name__': '__main__', '__doc__': None}
    >>> 
    

    You read i data on wrong time (place)!

    If there is a single BUS or Variable name You must use the FIFO method.

    FIFO << Here information

提交回复
热议问题