Advertisement
UniQuet0p1

Untitled

Jan 13th, 2021
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.57 KB | None | 0 0
  1. Задания
  2. 01. range_with_count (50 пунктов)
  3. Функция принимает на вход три целых числа и возвращает последовательность от начала до конца, так что в конце число является количеством элементов в последовательности.
  4.  
  5. 02. add_symbol (50p)
  6. Функция принимает входные данные в виде слова и символов, указывающих, какие буквы или цифры нужно добавить к возвращаемому слову. Функция возвращает слово с добавленными символами.
  7.  
  8. Если буква в слове присутствует в символах, эта буква должна быть двойной в возвращаемом слове. Если число в слове присутствует в символах, это число должно быть трижды в возвращаемом слове.
  9.  
  10. Если символ встречается более одного раза среди символов, это эквивалентно наличию одного символа.
  11.  
  12. 03. h_index (50p)
  13. Функция получает входные данные от цитирований человеческих статей в последовательности (каждый элемент последовательности представляет количество цитирований одной статьи). Рассчитайте индекс Хирша для человека.
  14.  
  15. H-индекс - это наибольшее количество статей с как минимум указанным количеством ссылок. Другими словами, h-индекс N указывает на то, что существует не менее N статей, на которые ссылались N или более раз (т.е. есть не менее N элементов со значением N или более) - в этой функции мы должны найти максимально возможное N для данной последовательности. .
  16.  
  17. Например: для input [4, 2, 4] h-index равен 2 (минимум 2 статьи упоминаются 2 или более раз). 3 больше не подходит (никакие три статьи не цитировались 3 и более раз). См. Дополнительные примеры из шаблона.
  18.  
  19. 04. fuel_calculation (50p)
  20. NB! Эту задачу нужно решать рекурсивно.
  21.  
  22. Вы сидите в самолете перед выходом из терминала и задаетесь вопросом, почему ваш рейс опоздал на час, когда рабочий внезапно вбегает в салон и кричит: «Есть ли на борту математик?»
  23.  
  24. Вы, как студент, изучающий информационные технологии, решаете попытаться помочь им с их проблемами.
  25.  
  26. Проблема в том, что у них есть масса самолета, но они не знают, сколько топлива нужно для полета.
  27.  
  28. Топливо рассчитывается по следующей формуле: массу разделить на три, округлить в меньшую сторону, вычесть два.
  29.  
  30. Но это не все. Топливо, добавленное в самолет, увеличивает массу самолета и, следовательно, требует того же топлива по той же формуле. Это дополнительное топливо, в свою очередь, требует дополнительного топлива, и так далее, пока, наконец, не потребуется так мало дополнительного-сверх-дополнительного топлива, что формула станет нулевой.
  31.  
  32. Если формула говорит, что необходимо отрицательное количество топлива, сосчитайте его до нуля.
  33.  
  34. 05. valid_parentheses (100p)
  35. Функция вводит слово, состоящее только из следующих символов: '(', ')', '{', '}', '[' и ']'. Необходимо восстановить истинное значение того, правильны ли скобки в слове. См. Примеры.
  36.  
  37. 06. Пончиковая фабрика (50 очков)
  38. Ваша задача - реализовать упрощенную систему фабрики пончиков. Логика этой задачи касается последнего этапа всего процесса, то есть части упаковки пончиков (объектов класса Donut), которая будет происходить в классе DonutFactory. Все пончики отличаются друг от друга начинкой и глазурью.
  39.  
  40. Класс Пончик
  41.  
  42. __init __ (self, fill: str, icing: str) - конструктор класса, входным параметром которого является начинка пончика и глазурь. Названия начинки и глазури всегда пишутся строчными буквами.
  43. Класс DonutFactory
  44.  
  45. __init __ (self) - конструктор класса.
  46.  
  47. add_donuts (self, donuts: list) - метод, добавляющий пончики на конвейер для упаковки.
  48.  
  49. get_donuts (self) - метод, возвращающий список всех пончиков, которые в данный момент находятся на конвейере.
  50.  
  51. pack_donuts_by_filling_and_icing (self) - метод, позволяющий упаковывать пончики путем начинки и глазури. Словарь должен быть возвращен в виде {(заполнение, глазурь): [пончик1, пончик2]}. После упаковки конвейер должен быть пустым (все пончики были упакованы на заводе).
  52.  
  53. sort_donuts_by_icing_and_filling (self) - метод, который должен возвращать список пончиков, отсортированных сначала в алфавитном порядке по глазури, а затем в алфавитном порядке по заполнению.
  54.  
  55. get_most_popular_donut (self) - метод должен возвращать глазурь и начинку пончика, которые больше всего присутствуют на конвейере в данный момент. Словарь должен иметь вид {icing: donut_glaze, fill: donut_filling}. NB! Комбинация глазури и начинки, не то, чтобы можно было легко найти самую популярную глазурь и отдельно самую популярную начинку! Если есть несколько популярных комбинаций, верните ту, у которой есть глазурь над алфавитом (то есть «a» имеет приоритет над «b»).
  56.  
  57. get_least_popular_donut (self) - метод должен возвращать глазурь и начинку пончика, которые меньше всего присутствуют на конвейере в данный момент. Словарь должен иметь вид {icing: donut_glaze, fill: donut_fill}. NB! Комбинация глазури и начинки, не то, что вы просто найдете менее популярную глазурь и после отдельной менее популярной начинки! Если есть несколько непопулярных комбинаций, верните ту, с заполнением ниже алфавита (т.е. «b» имеет приоритет над «a»).
  58.  
  59. get_donuts_by_flavor (self, flavour: str) - метод должен возвращать список пончиков с той же глазурью или начинкой, как указано в параметре метода. Параметр всегда указывается в нижнем регистре.
  60.  
  61.  
  62. 07. Авиакомпания (150p)
  63. Правительство собралось с мыслями и подумало, что следующий национальный маршрут можно использовать, чтобы рассчитать, будет ли бизнес прибыльным. Первую экономию средств приносит доверие первокурсникам создание программного обеспечения для этих целей.
  64.  
  65. Разумно решить проблему, определив новые вспомогательные переменные и методы для классов.
  66.  
  67. Самолет
  68. Объект, содержащий данные, относящиеся к самолету.
  69.  
  70. __init __ (self, operating_cost_per_distance: float, seat: int) Конструктор, обязательные поля:
  71.  
  72. operating_cost_per_distance - количество денег, потраченных на единицу расстояния для управления самолетом.
  73. места - количество мест в самолете.
  74. Пассажир
  75. __init __ (self, money: float) Конструктор, обязательные поля:
  76.  
  77. деньги - денежная сумма, доступная пассажиру, за вычетом, если необходимо, суммы, потраченной на покупку билета.
  78. Аэропорт
  79. __init __ (self, lat: float, lon: float, airport_fee: float) Конструктор, обязательные поля:
  80.  
  81. lat - расположение аэропорта в широтах
  82. lon - расположение аэропорта по долготе
  83. airport_fee - размер сбора, который аэропорт взимает каждый раз за обслуживание самолета
  84. distance_to_airport (self, other_airport) Метод принимает в качестве входных данных другой объект типа Airport и вычисляет расстояние между ними, используя формулу Distance = sqrt ((Start.Latitude - Destination.Longitude) ** 2 + (Start.Longitude - Destination.Longitude) * * 2)
  85.  
  86. Рейс
  87. __init __ (self, aircraft: Самолет, аэропорты: список, пассажиры: список) Конструктор, обязательные поля:
  88.  
  89. «самолет» означает самолет, обслуживающий данный рейс. NB! Если позже самолет будет заменен, существующие пассажиры останутся по уже проданным тарифам, а новые пассажиры будут платить по новому тарифу. Если в новом самолете меньше мест, чем зарегистрированных пассажиров, необходимое количество пассажиров должно быть удалено из списка пассажиров, а сумма, на которую они купили билет, должна быть возвращена.
  90. «аэропорты» означают последовательность аэропортов, в которых самолет останавливается в том порядке, в котором он появляется.
  91. пассажиры - последовательность пассажиров, покупающих авиабилет.
  92. change_aircraft (self, aircraft) - сменить самолет. Если в новом самолете меньше мест, чем в текущем, лишним людям придется компенсировать расходы и отстранить их от полета. Летный самолет заменен на новый.
  93.  
  94. add_passenger (self, пассажира: Пассажир) Сначала метод проверяет, достаточно ли у пассажира, входящего в поле ввода, денег, чтобы купить билет на рейс, и есть ли в самолете свободное место для этого пассажира. Если у пассажира достаточно средств и на рейсе есть свободное место, он добавляет его в список пассажиров и вычитает из него деньги за билет.
  95.  
  96. remove_passenger (self ,senger: Passenger) Метод удаляет пассажира из очереди пассажиров и возвращает пассажиру сумму, на которую он купил билет.
  97.  
  98. get_total_distance (self) -> float Возвращает расстояние, которое проходит рейс через все аэропорты на маршруте.
  99.  
  100. get_operating_cost (self) -> float Возвращает сумму денег, потраченную на эксплуатацию самолета, когда он проходит весь маршрут, плюс плата за обслуживание для каждого пройденного аэропорта. Длина маршрута умножается на операционную единицу для единицы расстояния самолета. Плата за обслуживание в аэропорту за каждый рейс добавляется.
  101.  
  102. get_ticket_cost (self) -> float Возвращает цену билета на пассажира. Формула цены билета: (Operating_cost / (количество мест в самолете / 2)) * TICKET_MARKUP (константа, определенная в начале шаблона).
  103.  
  104. get_flight_profit (self) -> float Возвращает прибыль от этого полета. Формула прибыли от полета - это выручка от билетов - operating_cost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement