Есть ответ 👍

Рецензія до твору "вітька + галя" - нужно сделать до конца дня

150
365
Посмотреть ответы 1

Ответы на вопрос:


квас не ломать

Объяснение:

# TODO Дописать функцию анализирующую ситуацию с пандемией

# На вход функции подаётся строка, которая характеризует планету "01000000X000X011X0X"

# "0" – незараженная суша, "1" – зараженная суша, "X" – континет

# Вирус не может перемещаться на другой континент через океан

# Найти процент суши, которая будет зараженной по итогу.

# Пример:

# начало: map1 = "01000000X000X011X0X"

# конец: map1 = "11111111X000X111X0X"

# всего = 15

# зараженной суши = 11

# процент зараженной суши = 100 * 11 / 15 = 73.33333333333333

def infected(world):

   infected = False  # Флаг хотя бы одного зараженного континента

   sum_of_infected = 0  # Общее количество зараженных

   nums_of_lands_and_oceans = len(world)  # Суммарное количество морей и континентов

   nums_of_lands = 0   # Количество континентов

   nums_of_lands_before_ocean = 0

   has_no_oceans = False

   for s in world:

       if s != "X":

           nums_of_lands += 1  # Количество континентов

           has_no_oceans = False

       if nums_of_lands == nums_of_lands_and_oceans or nums_of_lands == 0:

           has_no_oceans = True

   for s in world:

       if s == "0":

           nums_of_lands_before_ocean += 1

       elif s == "1":

           nums_of_lands_before_ocean += 1

           infected = True

       elif s == "X":

           if infected:

               sum_of_infected += nums_of_lands_before_ocean

           infected = False

           nums_of_lands_before_ocean = 0

   if not has_no_oceans:

       return 100 * sum_of_infected / nums_of_lands

   else:

       if infected:

           return 100

       else:

           return 0

tests = [

   ("01000000X000X011X0X", 73.33333333333333),

   ("01X000X010X011XX", 72.72727272727273),

   ("", 0),

   ("00000000X00X0000", 0),

   ("0000000010", 100),

   ("0000010010X1X00010X", 100),

   ("X00X000000X10X0100X", 42.857142857142854),

]

goal = 0

for inp, exp in tests:

   if infected(inp) == exp:

       goal += 1

if goal == 7:

   print('Круто! Функция работает:)')

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Українська література

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS