2014-10-05 6 views
-1
i=-1 
while True: 
    global i 
    ++i 
    if i>5: 
     break 
    print i 

Я хочу, чтобы это напечатать 0 1 2 3 4, но он печатает 0 0 0 все время. Как это исправить?Python глобальные переменные не работает в цикле

+8

У Python нет оператора '++'. –

+1

Почему вы используете глобальное в первую очередь? –

+3

'++ i' совпадает с' + (+ (i)) 'в Python; это приложение для двух унарных плюс операторов и не переназначает 'i'. – user2864740

ответ

2

Вы не изменив переменную i

i=-1 
while True: 
    global i 
    i+= 1 #<----- 
    if i>5: 
     break 
    print i 
+2

Даже не нужно для ключевого слова global здесь: i - локальная переменная, но не вводит область видимости. –

+0

@ DanielRoseman Хорошая точка. Я этого не заметил. – AHuman

+0

Хе-хе, это все еще не дает желаемых результатов, вы устанавливаете 'i' в -1 в начале, чтобы он печатал от 0 до 5, а не от 1 до 5, как запрошено в вопросе, установить его на 0, чтобы исправить :) – W1ll1amvl

0
i=-1 
def test(): 
    while True: 
     global i 
     i+=1 
     if i>=5: 
      break 
     print i 

test() 

Спасибо всем мне помогли.

Смежные вопросы