Python won't advance
Question: Question: What would be the issue if python continues to ask for the same
input over and over again, and won't advance to the end of the program?

    
    
    Where do you want to go? X
    And how many days will you be staying in X? 1
    And how many days will you be staying in X? 2
    And how many days will you be staying in X? 164
    And how many days will you be staying in X? 59
    ...
    

Here's the relevant part of the code:

    
    
    # Import modules
    import destinations
    import currency
    
    save_itinerary = True
    main_function = True
    while (main_function):
    
        # Determine length of stay
        while True:
            try:
                length_of_stay = int(input("And how many days will you be staying in " + destinations.destination[0] + "? "))
                # Check for non-positive input
                if (length_of_stay <= 0):
                    print("Please enter a positive number of days.")
                    continue
            except ValueError:
                print("The value you entered is invalid. Only numerical values are valid.")
                break
            else:
                break
    


Answer: The reason your code is looping forever is that you have two nested `while`
loops, and you never break out of the outer one. You do use `break` statements
to exit the inner loop, but the condition for the outer loop is never changed,
and you never execute a `break` at the right level to exit it.

Here's what I think a better version of your code would be:

    
    
    # get rid of the outer while loop, which was never ending
    while True:
        try:
            length_of_stay = int(input("And how many days will you be staying in " + destinations.destination[0] + "? "))
            if (length_of_stay <= 0):
                print("Please enter a positive number of days.")
                continue
        except ValueError:
            print("The value you entered is invalid. Only numerical values are valid.")
            # don't break here, you want to stay in the loop!
        else:
            break
    

I've used comments to indicate my changes.

You could also move the `else: break` block up and indent it so that it is
attached to the `if` statement, rather than the `try`/`except` statements (and
then get rid of the unnecessary `continue` statement). That's makes the flow a
bit more obvious, though there's not really anything wrong with how it is now.

