def prompt_string(prompt='Enter a value', default=None):
    """Prompt the user for a string and return it"""
    _new = None
    while True:
        try:
            _new = str(input('{}? [{}]: '.format(prompt, str(default))))
            break
        except ValueError:
            print("Sorry, I didn't understand that.")
            continue
        except KeyboardInterrupt:
            break
    return default if _new in [None, ''] else _new
