Can anyone tell me why my line 4 isn't working. Every time I type in anything more than 20 it still comes up with a one pound voucher.
mcuringa's solution is probably best, but what you were probably aiming for was:
if money > 10 and money <= 20:
Note the 'and' keyword and the fact that we compare 20 to money again (in a second condition, the variable is not implied; it needs to be stated again, because computers just aren't as smart as people when it comes to this :P)
If you test the "20" condition first, it fixes your problem and makes the logic simpler and easier to read.
money = float(input("How much money have you spent today?")) if money > 20: print ("you are entitled to a 3 pound voucher to spend next time you come in the store") elif money > 10: print ("you are now entitled to a 1 pound voucher to spend next time you come in the Store") else: print ("Have a nice day.")