Python NameError: el nombre ‘xxx’ no está definido

puzzle = [[' 1', ' 2', ' 3', ' 4'], [' 5', ' 6', ' 7', ' 8'],[ ' 9', '10', '11', '12'], ['13', '14', '15', ' X']] def find_pos(alist, item): for i in alist: for j in range(4): if i[j] == item: row = alist.index(i) col = j find_pos(puzzle,' X') a = row print(a) 

Creo que find_pos la row nombre ejecutando la función find_pos , si no, cómo solucionarlo para obtener la row

No ponga ninguna impresión en la función find_pos

Solo devuelve los valores de la función:

 puzzle = [[' 1', ' 2', ' 3', ' 4'], [' 5', ' 6', ' 7', ' 8'],[ ' 9', '10', '11', '12'], ['13', '14', '15', ' X']] def find_pos(alist, item): for i in alist: for j in range(4): if i[j] == item: row = alist.index(i) col = j return row, col row, col = find_pos(puzzle,' X') print(row) 

Tenga en cuenta que si no se encuentra el elemento, devolverá None (porque todas las funciones que no devuelven nada devuelven None por defecto), en cuyo caso el código generará un error.