Имам проблем с изпълнението на следния код:
Става дума за тази задача:
12.Търговски комисионни
Фирма дава следните комисионни на търговците си според града, в който работят и обема на продажбите:
| Град | 0 ≤ s ≤ 500 | 500 < s ≤ 1 000 | 1 000 < s ≤ 10 000 | s > 10 000 | 
| Sofia | 5% | 7% | 8% | 12% | 
| Varna | 4.5% | 7.5% | 10% | 13% | 
| Plovdiv | 5.5% | 8% | 12% | 14.5% | 
Напишете конзолна програма, която чете име на град (текст) и обем на продажби (реално число), въведени от потребителя, и изчислява и извежда размера на търговската комисионна според горната таблица. Резултатът да се изведе форматиран до 2 цифри след десетичната точка. При невалиден град или обем на продажбите (отрицателно число) да се отпечата "error".
Примерен вход и изход
| вход | изход | 
 | вход | изход | 
 | вход | изход | 
 | вход | изход | 
| Sofia 1500 | 120.00 | Plovdiv 499.99 | 27.50 | Varna 3874.50 | 387.45 | Kaspichan -50 | error | 
sales = float(input())
town = input()
if town == "Sofia":
    if 0 <= sales <= 500:
        commission = sales * 0.05
        print(f"{commission:.2f}")
    elif 500 < sales <= 1000:
        commission = sales * 0.07
        print(f"{commission:.2f}")
    elif 1000 < sales <= 10000:
        commission = sales * 0.08
        print(f"{commission:.2f}")
    elif sales > 10000:
        commission = sales * 0.12
        print(f"{commission:.2f}")
    else:
        print("error")
elif town == "Varna":
    if 0 <= sales <= 500:
        commission = sales * 0.045
        print(f"{commission:.2f}")
    elif 500 < sales <= 1000:
        commission = sales * 0.075
        print(f"{commission:.2f}")
    elif 1000 < sales <= 10000:
        commission = sales * 0.10
        print(f"{commission:.2f}")
    elif sales > 10000:
        commission = sales * 0.13
        print(f"{commission:.2f}")
    else:
        print("error")
elif town == "Plovdiv":
    if 0 <= sales <= 500:
        commission = sales * 0.055
        print(f"{commission:.2f}")
    elif 500 < sales <= 1000:
        commission = sales * 0.08
        print(f"{commission:.2f}")
    elif 1000 < sales <= 10000:
        commission = sales * 0.12
        print(f"{commission:.2f}")
    elif sales > 10000:
        commission = sales * 0.145
        print(f"{commission:.2f}")
    else:
        print("error")
else:
    print("error")
Попринцип първият вход трябва да е текст, а вторият число. Но при подреден по този начин код (когато town е преди sales), програмата гръмва още с натискането на enter. При размяна (както е в случая) на входните данни, всички примерни изходи са ми коректни. Естествено judje се сърди и гръмва и при двете подредби, давайки ми 0/100. Каква може да е причината?
Тествах решението Ви и по двата начина (с copy-paste и ръчно), и на двата ми изгърмя веднага, при ръчното решение дори не успях да подам третия вход. Но този път системата ми го прие и ми даде 100/100. Благодаря! Не знам защо компилаторът ми мрази точно този код, но не ми е за първи път.