Loading...
veselinvalkanov avatar veselinvalkanov 0 Точки

08. Seize the Fire /дава ми 60/100 - някой,ако може да каже защо

level_of_fire = input().split("#")
water = int(input())

print("Cells:")

all_effort = 0
total_fire1 = 0
for fire in level_of_fire:
    args = fire.split(" =")
    type = args[0]
    cells = int(args[1])
    effort = 0
    total_fire = 0

    if water < cells:
        break
    else:

        if type == "High":
            if 80 < (cells) <= 130:
                effort += (cells) * 0.25
                water -= (cells)
                total_fire += effort * 4

            else:
                continue

        elif type == "Medium":
            if 50 < (cells) <= 81:
                effort += (cells) * 0.25
                water -= (cells)
                total_fire += effort * 4

            else:
                continue

        elif type == "Low":
            if 1 <= (cells) <= 51:
                effort += (cells) * 0.25
                water -= (cells)
                total_fire += effort * 4

            else:
                continue

    total_fire1 += total_fire
    all_effort += effort

    print(f" - {cells}")
print(f"Effort: {all_effort:.2f}")
print(f"Total Fire: {int(total_fire1)}")
Тагове:
0
Fundamentals Module
MartinBG avatar MartinBG 4803 Точки

Имаше грешки в range границите на някои от типовете огън, както и не беше спазена тази част от условието:

If you don’t have enough water to put out a given cell – skip it and try the next one.

(изпозван break вместо continue)

 

Оправения код:

level_of_fire = input().split("#")
water = int(input())

print("Cells:")

all_effort = 0
total_fire1 = 0
for fire in level_of_fire:
    args = fire.split(" =")
    type = args[0]
    cells = int(args[1])
    effort = 0
    total_fire = 0

    if water < cells:
        continue
    else:

        if type == "High":
            if 81 <= cells <= 125:
                effort += cells * 0.25
                water -= cells
                total_fire += effort * 4

            else:
                continue

        elif type == "Medium":
            if 51 <= cells <= 80:
                effort += cells * 0.25
                water -= cells
                total_fire += effort * 4

            else:
                continue

        elif type == "Low":
            if 1 <= cells <= 50:
                effort += cells * 0.25
                water -= cells
                total_fire += effort * 4

            else:
                continue

    total_fire1 += total_fire
    all_effort += effort

    print(f" - {cells}")
print(f"Effort: {all_effort:.2f}")
print(f"Total Fire: {int(total_fire1)}")

Старал съм се да не правя промени извън фиксовете, но имайте предвид, че повтарянето на код е лоша практика и трябва да се избягва винаги, без изключения.

Имам предвид този блок, който е използван 3 пъти:

                effort += cells * 0.25
                water -= cells
                total_fire += effort * 4

Помислете как да го има само веднъж и да бъде преизползван и за трите случая.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.