Професионална програма
Loading...
+ Нов въпрос
d_donev avatar d_donev 1 Точки

Ski Trip, Python

days = int(input())
rooms = str(input())
stars = str(input())
price = 0

if days < 10:
    if rooms == 'room for one person':
        price_rooms = (days - 1) * 18
        if stars == 'positive':
            price = price_rooms + (price_rooms * 0.25)
        else:
            price = price_rooms - (price_rooms * 0.1)
    elif rooms == 'apartment':
        price_apart = (days - 1) * 25
        price_apart_2 = price_apart - (price_apart * 0.3)
        if stars == 'positive':
           price = price_apart_2 + (price_apart_2 *0.25)
        else:
            price = price_apart_2 - (price_apart_2 - 0.1)
    elif rooms == 'president apartment':
        price_pres = (days - 1) * 35
        price_presi = price_pres - (price_pres * 0.1)
        if stars == 'positive':
            price = price_presi + (price_presi * 0.25)
        else:
            price = price_presi - (price_presi * 0.1)
elif days >= 10 and days <= 15:
    pass
elif days > 15:
    pass
print(f'{price:.2f}')

Другите две проверки са аналогични на първата, не ги копирам, за да не стане прекалено дълго.

При изхода дава правилни отговори, но Judge дава 80/100 точки. Някакви предложения защо става така?

0
Python
DeveloperEnthusiast avatar DeveloperEnthusiast 302 Точки

Здравей ! 

Проверките както си ги започнал от days < 10 можеш да ги направиш така

if days < 10:  # до 9
    pass
elif days <= 15:  # 10 до 15 
    pass
else:  # > 15
    pass

Също така тази проверка за 'stars' можеш да я направиш най-накрая, за да не я повтаряш на всякъде... и е много вероятно тъй като не си пействаш целия код да имаш някоя изчислителна грешка или нещо подобно...

Това (days - 1) също можеш да си го направиш в променлива 'nights' на пр. или да го извадиш направо от days във входа въпреки, че не е добра практика да се променя потребителския вход

За да си постваш кода използвай https://pastebin.com/

Работещо решение:  https://pastebin.com/ZqLPhCBU

 

1
d_donev avatar d_donev 1 Точки

Благодаря!

Преработих си кода подобно на твоето решение и Judge го прие, пък и така стана по-прегледно. :)

1