def get_user_choice(choices, choice_type, default_value=""):
    """
    A common method to take user choice from a list of choices

    Args:
        (list) choices - list of choices
        (str) choice_type - Type of choice
        (boolean) default_value - Return default value in case wrong input
    Returns:
        (str) - User selected choice
    """

    print("\n\n{}\n".format(choice_type))

    # Display the choices to user
    for i in range(len(choices)):
        print("{}. {}".format(i + 1, choices[i].capitalize()))

    # User input for number for choice selection
    while True:
        try:

            # Input prompt for Choice
            choice = input("\nEnter your choice: ")

            # Convert input text in lowercase
            choice_lower = choice.lower()

            # Check if choice text match in list
            if choice_lower in choices:

                # Display corrected selection
                print("\nYou selected: {}".format(choice_lower.capitalize()))

                return choice_lower
            elif choice_lower.isdigit():
                # Check if user used number for selection

                # Check if number choice has value in list
                choice_value = choices[int(choice_lower) - 1]

                # Display corrected selection
                print("\nYou selected: {}".format(choice_value.capitalize()))

                return choice_value
            else:

                if len(default_value) > 0:

                    # Check for default value, if yes return that in wrong input event
                    return default_value
                else:
                    # Display input error message
                    print("\nPlease enter a valid choice (text or number).")

        except KeyboardInterrupt:

            # Keyboard Interrupt need to handled so program can exit properly
            print("Exiting..")

            # Make sure we are passing the exception to chain
            raise
        except:

            if len(default_value) > 0:

                # Check for default value, if yes return that in wrong input event
                return default_value
            else:
                print("\nPlease enter a valid choice (1,2,3,...) or text.")