At the last two lines of your eight_queens_steepest_descent_optimizer, you can actually combine the two prints to get print('n =', n, ':', '\n', 'optimized board', steepest_descent_optimizer(n), '\n'). It does the same thing and is a little harder to read, but it does get rid of the use of print twice. If you think it is more readable as is though, feel free to ignore this
At the last two lines of your eight_queens_steepest_descent_optimizer, you can actually combine the two prints to get print('n =', n, ':', '\n', 'optimized board', steepest_descent_optimizer(n), '\n'). It does the same thing and is a little harder to read, but it does get rid of the use of print twice. If you think it is more readable as is though, feel free to ignore this