prompt = "Enter a hex digit: " reject_too_long = "Only one number must be input." reject_invalid_input = "Invalid input" hex_candidate = input(prompt).upper() if len(hex_candidate) != 1: print(reject_too_long) elif not hex_candidate.isalnum(): print(reject_invalid_input) elif not "A" <= hex_candidate <= "F": # by this point digit is alphanumeric # so we only have to check if it's in range [A, F] print(reject_invalid_input) else: numeric = int(hex_candidate, 16) print(bin(numeric)[2:])