code: def get_input(prompt, check, *, redo_prompt=None, repeat_prompt=False):
      if isinstance(check, str):
          check = (check,)
      to_join = []
      for item in check:
          if item:
              to_join.append(str(item))
          else:
              to_join.append("''")
      prompt += " [{}]: ".format('/'.join(to_join))
      if repeat_prompt:
          redo_prompt = prompt
      elif not redo_prompt:
          redo_prompt = "Incorrect input, please choose from {}: " \
                        "".format(str(check))
      if callable(check):
          def _checker(r): return check(r)
      elif isinstance(check, tuple):
          def _checker(r): return r in check
      else:
          raise ValueError(RESPONSES_ERROR.format(type(check)))
      response = input(prompt)
      while not _checker(response):
          print(response, type(response))
          response = input(redo_prompt if redo_prompt else prompt)
      return response