Я новичок в питоне.
Второй цикл выполняется только один раз, только в первый раз, но когда доходит очередь до первого цикла и когда e = e+1
- python пропускает второй цикл!
Почему?
Заказ print
работает только один раз.
items = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
i=0
e=0
while e < 6 :
while i < 9 : #python run this loop only once, and never come back when e=e+1
print items[i][e]
i=i+1
e=e+1
Я попробую, потому что раньше я не использовал print foo, я использую python 2.7, спасибо за эту информацию :)
он не делает ничего особенного, я просто использовал его, чтобы увидеть, как работают петли
После однократного выполнения цикла i, i будет установлено на 9 и останется 9 до тех пор, пока вы не сбросите. так что вы можете попробовать установить его в 0 после e = e + 1. Полезный метод, который вы можете попробовать, - это также распечатать значения 'e' и 'i', чтобы увидеть, где петли пошли не так.
items = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
i=0
e=0
while e <6 :
while i <9 :
print items[i][e]
print 'loop: i'+str(i)+'e'+str(e)
i=i+1
e=e+1
i=0
Отладил это сам, изменил печать, чтобы просто print foo, и добавил печать на внешнюю, а на print bar, foo печатает 9 раз, bar печатает 6 раз после того, как это было сделано. Разве это не ожидаемое поведение