i=-1
while True:
global i
++i
if i>5:
break
print i
Я хочу, чтобы это напечатать 0 1 2 3 4
, но он печатает 0 0 0
все время. Как это исправить?Python глобальные переменные не работает в цикле
i=-1
while True:
global i
++i
if i>5:
break
print i
Я хочу, чтобы это напечатать 0 1 2 3 4
, но он печатает 0 0 0
все время. Как это исправить?Python глобальные переменные не работает в цикле
Вы не изменив переменную i
i=-1
while True:
global i
i+= 1 #<-----
if i>5:
break
print i
Даже не нужно для ключевого слова global здесь: i - локальная переменная, но не вводит область видимости. –
@ DanielRoseman Хорошая точка. Я этого не заметил. – AHuman
Хе-хе, это все еще не дает желаемых результатов, вы устанавливаете 'i' в -1 в начале, чтобы он печатал от 0 до 5, а не от 1 до 5, как запрошено в вопросе, установить его на 0, чтобы исправить :) – W1ll1amvl
i=-1
def test():
while True:
global i
i+=1
if i>=5:
break
print i
test()
Спасибо всем мне помогли.
У Python нет оператора '++'. –
Почему вы используете глобальное в первую очередь? –
'++ i' совпадает с' + (+ (i)) 'в Python; это приложение для двух унарных плюс операторов и не переназначает 'i'. – user2864740