Неожиданный результат в for / lists (очень простой вопрос)

#python #for-loop

#python #for-цикл

Вопрос:

Я пытался создать очень простой список следующим образом:

 j = 0
myList = list(range(5))
for i in myList: j = j   2
print("i=", i, "j=", j)
  

Чего я ожидаю, так это:

 i = 0 , j = 2
i = 1 , j = 4
i = 2 , j = 6 etc
  

Вместо этого я получаю следующее:

 i= 4 j= 10
  

Где ошибка?

Комментарии:

1. проблема в отступе

Ответ №1:

Отсутствие отступов вызывает ошибку. Это должно быть

 j = 0
myList = list(range(5))
for i in myList: 
    j = j   2
    print("i=", i, "j=", j)
  

Ответ №2:

Проблема с вашим отступом.

Вот исправленный код:

 j = 0
myList = list(range(5))
for i in myList: 
    j = j   2
    print("i=", i, "j=", j)
  

Ответ №3:

Если вам не нужен myList (лучше: my_list) в виде списка, а просто используйте его для определения диапазона цикла for, вы можете записать его так:

 j = 0
for i in range(5):
    j  = 2  # shorter and more pythonic
    print("i=", i, "j=", j)