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
julien.p1 avatar julien.p1 15 Точки

Брояча за билетите за даден филм трябва да е в пътвия цикъл, за да се занулят при причитането на всеки следващ. Моят код е на Java, но би трябвало да можеш да се ориентираш.

https://pastebin.com/yFDgs4ux

0
MartinBG avatar MartinBG 4803 Точки

Това е преправеното ти решение:

counter_standard = 0
counter_kid = 0
counter_student = 0

while True:
    film = input()
    if film == "Finish":
        break
        
    capacity = int(input())
    tickets_sold = 0
    
    while capacity > tickets_sold:
        ticket_type = input()
        if ticket_type == "End":
            break
            
        tickets_sold += 1
        
        if ticket_type == "standard":
            counter_standard += 1
        elif ticket_type == "kid":
            counter_kid += 1
        elif ticket_type == "student":
            counter_student += 1
            
    print(f"{film} - {tickets_sold / capacity * 100:.2f}% full.")

ticket_counter = counter_standard + counter_kid + counter_student
print(f"Total tickets: {ticket_counter}")
print(f"{counter_student / ticket_counter * 100:.2f}% student tickets.")
print(f"{counter_standard / ticket_counter * 100:.2f}% standard tickets.")
print(f"{counter_kid / ticket_counter * 100:.2f}% kids tickets.")

 

Наложи се да променя доста неща, за да покрие условията на задачата, така че най-добре го разгледай внимателно и питай, ако има нещо, което не ти е ясно.

0
ferrist avatar ferrist 1 Точки

Благодаря много!

1
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 1191 Точки

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

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

if movie == "Finish":

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

while movie != "Finish":

laugh

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