In my code I cannot understand why python is returning a None
at the end. I have tried to close every statement with Exit
however I am still getting the None
. Here is the output I am getting:
[[6 4 5 3 2 8 7 1 9]
[3 8 7 9 1 6 4 5 2]
[2 9 1 4 5 7 6 3 8]
[5 6 3 2 9 1 8 7 4]
[9 7 8 6 4 5 1 2 3]
[1 2 4 8 7 3 5 9 6]
[7 3 9 5 6 4 2 8 1]
[8 5 6 1 3 2 9 4 7]
[4 1 2 7 8 9 3 6 5]]
None
Here is my current code, could I kindly ask some assistance to identify where I am missing it:
import numpy as np
import copy
def sudoku_solver(sudoku):
start_sudoku = copy.deepcopy(sudoku)
duplicates(sudoku)
solution(start_sudoku, sudoku)
def duplicates(sudoku):
for r in range(9):
line = (sudoku[r, :])
nonzeros = [x for x in line.flatten() if x != 0]
if (len(nonzeros) == len(set(nonzeros))) == False:
array = [[-1 for i in range(9)] for j in range(9)]
return (np.array(array))
return
def solution(start_sudoku, sudoku):
for y in range(9):
for x in range(9):
if sudoku[y][x] == 0:
for n in range(1, 10):
if possible(y, x, n):
sudoku[y][x] = n
solution(start_sudoku, sudoku)
sudoku[y][x] = 0
return
if np.array_equal(sudoku, start_sudoku):
array = [[-1 for i in range(9)] for j in range(9)]
return np.array(array)
return sudoku
your_solution = sudoku_solver(sudoku)
print(your_solution)