Q:

Python multiple if/elif/else statements and display only user selections

using python 2.7.5, solving programming class problem where order total is added to a shipping cost, prices are set for shipping to US and Canada, I have code written for shipping to US but need to change the values so if the user selects canada a different set of values are applied to the order total. 
Canada shipping is: 8.00 for less than 50.0, 12.0 for more than 50.01 - 100.0, 15.0 for 100.01 - 150.0, I need a way to replace these values with the US shipping ones in the code below: 
user_order = float(input("how much is your order? "))
user_ship_area = raw_input('Are you shipping to the US or Canada?')

if user_order < 50.00 and user_ship_area == "US": #start selection with user order and shipping area. 
    #User would be given price for shipping according to order cost   
    print 'you must pay $6.00 for shipping ' #user order less than 50$ = 64 for shipping.
    user_order = user_order + 6.0

elif user_order < 100.0 > 50.01 and user_ship_area == "US": #must include range of numbers, if user order is over 50.01 but under 100.0 
    print 'you must pay $9.00 for shipping'   #they must pay 9.00 for shipping.
    user_order = user_order + 9.0

elif user_order < 150.0 > 100.01 and user_ship_area == "US": #if user order is over 100.01$ but under 150$ 
    print 'you must pay $12.00 for shipping '#12.00$ will be charged for shipping
    user_order = user_order + 12.0 
else: 
    print 'congratulations you qualify for free shipping' #since it works by checking each elif, it goes to else

print "your order total is", user_order 

#need to create option for shipping to Canada, the prices are different.
#how to repeat the above code but for different values if the user selects Canada. 

A:

When you give something like
user_order < 100.0 > 50.01

to python it will evaluate it like this
user_order < 100.0 and 100.0 > 50.01

But that is not what we want. We want to check this
user_order < 100.0 and user_order > 50.01

So the correct way to write the conditions will be 
50.01 < user_order < 100.0

Suggestions:

You dont have to use
float(input("how much is your order? "))

either
float(raw_input("how much is your order? "))

or
input("how much is your order? ") # Don't use this

because input will internally do eval(whatever user inputs). That will find the right data type automatically. Note Never use input in Python2, it can lead to potential security issues. (Thanks Matthias for pointing it out)
Whenever you post code (even better, while writing) try and indent the code properly. That will make it easier to debug.

