задача "Симпатичный узор" на python
Прописываю логику в цикле if а пайчарм пишет ошибку что я в if от строчки отнимаю число, хотя там работа с индексами должна быть(в задаче буквы но я и цифры вводил 0,1): TypeError: unsupported operand type(s) for -: 'list' and 'int'
a = []
n = int(input())
for i in range(n):
b = []
for j in range(n):
b.append(input())
a.append(b)
for i in a:
for j in i:
if a[i][j] == a[i - 1][j] and [i][j] == a[i + 1][j] and a[i][j] == a[i][j + 1] and a[i][j] == a[i][j - 1]:
print('no')
else:
print('yes')
Ответы (1 шт):
Автор решения: ganz
→ Ссылка
Во втором цикле переменная i является списком, следовательно обращение a[i] эквивалентно a[[1,2,3]] что вызовет ошибку. Здесь следует исспользовать функцию index ii=a.index(i) Вот изменённый код
a = []
n = int(input())
for i in range(n):
b = []
for j in range(n):
b.append(input())
a.append(b)
for i in a:
ii=a.index(i) #получаем индекс элемента i
for j in i:
if a[ii][j] == a[ii - 1][j] and [ii][j] == a[ii + 1][j] and a[ii][j] == a[ii][j + 1] and a[ii][j] == a[ii][j - 1]:
print('no')
else:
print('yes')
[upd] проблемма не решена? внимание на строку b.append(input())