def controllInput(func:callable, prompt = '>'): while True: try: inputValue = input(prompt) value = func(inputValue) if type(value) == bool: if value: return inputValue; else: print('!!INVALID INPUT!!') else: return value, inputValue except: print('!!INVALID INPUT!!') a = controllInput(str.isdigit, 'digit: ') print(a, type(a)) b = controllInput(int, 'int: ')[0] print(b, type(b)) c = controllInput(str.isalpha, 'alpha: ') print(c, type(c)) d = controllInput(lambda x: x.isalpha() and len(x)==5, '5 alpha:') print(d, type(d))