Софтуерно Инженерство
Loading...
+ Нов въпрос
Bars1967 avatar Bars1967 5 Точки

Задача за комисионни

Джъд ми открива грешка - очаква error, а получава 1 10 ( без точка след единицата)

Ето кода, ако някой види грешка, моля да ме насочи...
city = str.lower(input())
quantity = abs(float(input()))

comm = None

if (city == "sofia" or city == "varna" or city == "plovdiv") and (0 <= quantity):
    if city == "sofia":
        scal1 = 0.05
        scal2 = 0.07
        scal3 = 0.08
        scal4 = 0.12
    elif city == "varna":
        scal1 = 0.045
        scal2 = 0.075
        scal3 = 0.10
        scal4 = 0.13
    elif city == "plovdiv":
        scal1 = 0.055
        scal2 = 0.08
        scal3 = 0.12
        scal4 = 0.145
    if 0 < quantity <= 500:
        comm = (quantity * 1.0) * scal1
    elif 500 < quantity <= 1000:
        comm = (quantity * 1.0) * scal2
    elif 1000 < quantity <= 10000:
        comm = (quantity * 1.0) * scal3
    elif 10000 < quantity:
        comm = (quantity * 1.0) * scal4

    print(f'{comm:.2f}')

else:
    print("error")
0
Python
The_assassin avatar The_assassin 158 Точки

Добави това: if comm: над първия принт!

0
Bars1967 avatar Bars1967 5 Точки

не е това :)

Продължава да дава същата грешка, резултата е 94/100

 

0
The_assassin avatar The_assassin 158 Точки

Аз чак сега погледнах входовете ти, и условието. Защо търсиш абсолютна стойност на входа, то в условието е казано, че при отрицателно число трябва да изписва „error“!? Махни го това „ABS“!

0
Bars1967 avatar Bars1967 5 Точки

Даа, и аз тъкмо сега го забелязах...
Уж дреболия...

Много благодаря за помоща! :)

0
KaloyanStoyanovvv avatar KaloyanStoyanovvv 63 Точки

Едно малко по-дълго решение https://pastebin.com/5AabFSV6 , но дава 100/100.

0
Bars1967 avatar Bars1967 5 Точки

Благодаря за отговора!
Въпреки, че вече открихме грешката - abs -а на първия ред :)
Радвам се, че има хора, които си дават труда да отговарят! :)

 

0