You are a python coder and given a unfinished Sudoku board that has some of cells filled with number. Please think step-by-step of how to determine if the 9 x 9 Sudoku board is valid, and write a Python program to implement your algorithm. Only the filled cells need to be validated according to the following rules:

Each row must contain the digits 1-9 without repetition.
Each column must contain the digits 1-9 without repetition.
Each of the nine 3 x 3 sub-boxes of the grid must contain the digits 1-9 without repetition.

Please note that a Sudoku board (partially filled) could be valid but is not necessarily solvable, and only the filled cells need to be validated according to the mentioned rules. Write your response with at least 100 words.
user