Вопрос В чем ошибка в программе?

Регистрация
3 Май 2013
Сообщения
68
Репутация
0
Спасибо
0
Монет
0
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in a:

__print(a)

1) Не выводит единицу

2) Выводит все остальные числа, но после идет ошибка IndexError: list index out of range





В чем причина?
 
смотри магию
print(i) < нормальный код
print(a[i-1]) < говно-кода
Причина
a = [0=1, 1=2, 2=3, 3=4, 4=5, 5=6, 6=7, 7=8, 8=9]
Объяснение
Запрос к массиву без его перебора начинается с 0
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a[0])
 
Любитель фурри прав, в питоне конструкция for ... in итерирует по элементам, а не по их индексам (в отличие от Javascript, где наоборот).
Я бы ещё в коде переменную i переименовал, чтобы не вводила в заблуждение, и написал бы, например, for x in a:<LF><TAB>print(x)
 
a Ты подставляешь в качестве индекса сам элемент. Индекс 1 соответствует второй позиции в массиве.
т.е. по циклам:
первый цикл i = 1
ты печатаешь элемент с индексом 1 (это двойка)
поскольку индексация идет с нуля на девятке у тебя out of index.
Чтобы распечатать массив тебе просто надо было
for i in a:
____print(i)
 
Назад
Сверху