Почему выводится ошибка index out of range
n = int(input())
b=1
a=[[0 for i in range(n)] for j in range(n)]
for i in range(n+1):
for j in range(n+1):
if [0][0]<=[i][j]<=[0][n]:
a[i][j]+=b
b+=1
print(a)
Ответы (2 шт):
Автор решения: Rufat
→ Ссылка
Вот эти строки
for i in range(n+1):
for j in range(n+1):
if [0][0]<=[i][j]<=[0][n]:
необходимо заменить на эти:
for i in range(n):
for j in range(n):
if a[0][0] <= a[i][j] <= a[0][n-1]:
Полный правильный код такой:
n = int(input())
b = 1
a = [[0 for i in range(n)] for j in range(n)]
for i in range(n):
for j in range(n):
if a[0][0] <= a[i][j] <= a[0][n - 1]:
a[i][j] += b
b += 1
print(a)
Автор решения: cauf
→ Ссылка
При формировании матрицы
a=[[0 for i in range(n)] for j in range(n)]
вы определяете массив индексов как range(n), что при n = 3 вернет список [0, 1, 2]. А в условии:
if [0][0]<=[i][j]<=[0][n]:
последняя группа индексов определена от самого значения n, то есть [0][3]. Именно здесь и возникает ошибка. Вы пытаетесь обратиться к элементу, которого не существует.
Да и в целом синтаксис с группами индексов не понятен. Вы их берете откуда-то из воздуха. Нужно указать саму матрицу:
if a[0][0] <= a[i][j] <= a[0][n]:
В итоге правильный код будет таким:
n = int(input())
b=1
a=[[0 for i in range(n)] for j in range(n)]
for i in range(n):
for j in range(n):
if a[0][0] <= a[i][j] <= a[0][n-1]:
a[i][j]+=b
b+=1
print(a)