Професионална програма
Loading...
ferrist avatar ferrist 1 Точки

Nested Loops - cinema tickets

Здравейте,

имам затруднения с решението на задачата. Може да се каже, че тези затруднения не са с конкретната задача , а по-скоро с принципа който използвам. Та накратко пиша си нещата, проверките излизат, но само ако имам един филм. Не се сещам как да почна отначало цекъла. ако някой има възможност да погледне кода.

 

film = input()
capacity = int(input())
ticket_type = ""
counter_standart = 0
counter_kid = 0
counter_student =0
ticket_counter = 0

while film != "Finish":

    while ticket_type != "End":
        ticket_type = input()
        if ticket_type == "standard":
            counter_standart += 1
        elif ticket_type == "kid":
            counter_kid += 1
        elif ticket_type == "student":
            counter_student += 1
   
    ticket_type = input()
    ticket_counter = counter_standart + counter_kid + counter_student
    print(f"{film} - {ticket_counter / capacity * 100}% full.")
    print(f"Total tickets:{ticket_counter}")
    print(f"{counter_student / ticket_counter * 100:.2f}% student tickets.")
    print(f"{counter_standart / ticket_counter * 100:.2f}% standard tickets.")
    print(f"{counter_kid / ticket_counter * 100:.2f}% kids tickets.")

 

 

Тагове:
0
D.V.Ivanov avatar D.V.Ivanov 6 Точки

Ето и едно мое решение, което дава 100/100:

movie = input()

ticket1 = 0
ticket2 = 0
ticket3 = 0
sum_tickets = 0

while movie != "Finish":
    empty_places = int(input())
    count_places = 0
    while count_places < empty_places:
        ticket = input()
        if ticket == "End":
            break
        if ticket == "student":
            ticket1 += 1
            count_places += 1
        elif ticket == "standard":
            ticket2 += 1
            count_places += 1
        elif ticket == "kid":
            ticket3 += 1
            count_places += 1
    count_places = (count_places / empty_places) * 100
    print(f"{movie} - {count_places:.2f}% full.")
    movie = input()

if movie == "Finish":
    sum_tickets = ticket1 + ticket2 + ticket3
    ticket1 = (ticket1 / sum_tickets) * 100
    ticket2 = (ticket2 / sum_tickets) * 100
    ticket3 = (ticket3 / sum_tickets) * 100
    print(f"Total tickets: {sum_tickets}")
    print(f"{ticket1:.2f}% student tickets.")
    print(f"{ticket2:.2f}% standard tickets.")
    print(f"{ticket3:.2f}% kids tickets.")
0
svephoto avatar svephoto 1114 Точки

Добре си го направил, D.V.Ivanovyes

Иначе преди финалните пресмятания и печатането даже няма нужда да проверяваш

if movie == "Finish":

понеже няма какво друго да е (освен Finish), след като условието ти в while-a e

while movie != "Finish":

laugh

0
13/04/2021 23:24:05