Mar-29-2018, 04:53 PM
Another solution:
numbers_used = [0, 0, 0, 0, 0, 0, 0, 0, 0] slots_used = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] def get_a_number(message, min, max): number = '' while True: while not number.isdecimal(): number = input(message) number = int(number) if number < min or number > max: print('Number must be between {} and {}'.format(min, max)) continue break return(int(number)) def pick_a_number(): index = 0 row = 0 column = 0 while True: row = get_a_number('Please enter row: ', 1, 3) column = get_a_number('Please enter column: ', 1, 3) if slots_used[row - 1][column - 1]: print('Row: {}, Column: {} is already occupied'.format(row, column)) continue number = get_a_number ('Please pick a number between 1 and 9: ', 1, 9) if numbers_used[number - 1]: print('Sorry, that number has already been used') continue break print(f'row: {row}, column: {column} number: {number}') numbers_used[number - 1] = 1 slots_used[row-1][column-1] = 1 return number, row, column def testit(): count = 0 while True: number, row, column = pick_a_number() print('Selected: {} in row: {}, column: {}'.format(number, row, column)) count += 1 if count == 9: break if __name__ == '__main__': testit()