Задачи
Задача 1
Напишите две функции circle_length(radius) и circle_area(radius), принимающие радиус окружности и возвращающие длину этой окружности и площадь круга соответственно. Также напишите функцию main(), которая спрашивает у пользователя радиус окружности, а затем при помощи функций circle_length(radius) и circle_area(radius) выводит на экран длину и площадь круга, разделённые пробелом.
Учтите, что радиус окружности – это вещественное число.
Число π взять равным 3.14159.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 2
Напишите две функции larger_root(p, q) и smaller_root(p, q), которые возвращают больший и меньший корни приведённого квадратного уравнения x2 + px + q = 0. В качестве аргументов функции должны принимать коэффициенты p и q. Считать, что дискриминант неотрицателен.
Также сделайте функцию discriminant(a, b, c), которая вычисляет и возвращает дискриминант квадратного уравнения, записанного в общем виде: ax2 + bx + c = 0.
Функции вычисления корней должны использовать функцию вычисления дискриминанта.
Наконец, сделайте функцию main(), которая запрашивает у пользователя два вещественных числа p и q, и в ответ печатает на первой строке дискриминант уравнения x2 + px + q = 0, на второй строке – меньший и больший корни. Она должна выводить оба корня, даже если они совпадают.
Формат ввода
Ввод функции main()
Формат вывода
Вывод функции main():
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 3
Из-за плохой связи на мобильный телефон Василия приходят одни и те же смски по несколько раз. Он попросил вас написать небольшую функцию, которая будет работать почти как обычный print, но не будет печатать сообщение, если предыдущее сообщение было таким же.
Чтобы телефон эти изменения в распечатке смсок принял, ваш друг настроил его так, что вам достаточно написать функцию print_without_duplicates(message). Напишите её.
Пример
Ввод
Вывод
Задача 4
Для работы небольшого магазинчика вас попросили сделать небольшой набор функций, обеспечивающих работу с чеками. В качестве пробной версии вам нужно реализовать всего два действия: добавление покупки к набору покупаемых товаров, и печать чека. После того как чек напечатан должно быть возможно вводить новый список товаров.
По правилам оформления документов в каждом чеке вы должны напечатать сначала номер чека (нумерация начинается с единицы) и число товаров, затем список товаров с ценами и в конце — итоговую стоимость. Из-за того, что вы не знаете число товаров, пока кассир не «пробьет» последний товар, нельзя печатать чек по мере ввода товаров. Приходится сначала добавить все необходимые товары и только затем печатать весь чек целиком. В конце чека печатается черта (состоящая из пяти знаков минус), по которой он отрывается от ленты.
Организуйте две функции: add_item(item_name, item_cost) и print_receipt(), которые реализуют указанный функционал. Форматирование сделайте по шаблону в примере.
В случае, когда чек пуст, print_receipt не должна печатать чек. Не забудьте, что после того как чек напечатан, набор выбранных товаров должен обнулиться, чтобы можно было вводить товары для нового чека.
Пример
Ввод
Вывод
Задача 5
Алиса хочет устроить вечеринку по поводу ее дня рождения. Она хочет пригласить друзей так, чтобы друзья были между собой знакомы.
Помогите Алисе автоматизировать процесс написания приглашений. Напишите три функции: add_friends(), are_friends() и print_friends().
Функция add_friends(name_of_person, list_of_friends) принимает на вход два аргумента: имя человека и список имен его друзей.
Функция are_friends(name_of_person1, name_of_person2) принимает на вход два аргумента: имя первого человека и имя второго человека и возвращает True или False, в зависимости от того, считает ли первый человек второго своим другом.
А функция print_friends(name_of_person) принимает на вход имя человека и печатает список его друзей через пробел в алфавитном порядке.
Пример
Ввод
Вывод
Задача 6
В письменности языка НРЗБРЧВ отсутствуют гласные буквы и знаки препинания, в остальном язык ничем не отличается от русского языка. Чтобы из слова русского языка получить слово языка НРЗБРЧВ, достаточно выкинуть из слова все гласные. Чтобы перевести предложение, нужно перевести каждое слово и выкинуть знаки препинания. Регистр букв следует оставить неизменным.
Напишите функцию translate(text), которая переводит текст с русского языка на НРЗБРЧВ. Свой результат функция должна записать во внешнюю переменную translated_text.
Формат ввода
Формат вывода
Задача 7
Отдел кадров одной крупной компании осознал, что тратит много времени на заполнение одних и тех же данных в куче разных бумажек для заявки на отпуск. Они попросили вас упростить их работу, чтобы им приходилось только один раз ввести имя, фамилию и некоторые вспомогательные данные. А сразу несколько справок печатать подстановкой указанных данных в разные шаблоны.
Чтобы облегчить страдания бюрократов, вы взялись им помочь. Они и раньше использовали Python для печати документов, но для каждого документа они передавали все параметры раз за разом — примерно так:
Больше всего отдел кадров раздражало, что приходится повторять параметры в каждом документе, к тому же есть риск ошибиться. Можно было бы решить эту задачу с помощью введения переменных, но набор документов нужен каждый раз немного разный (иногда какой-то документ не нужен, иногда наоборот нужно несколько копий). Кроме того, даже с использованием переменных функциям все равно пришлось бы указывать кучу параметров и не путать, какие параметры функции нужны, а какие — необязательны. Да и работать с переменными отдел кадров пока не умеет.
Вы сошлись на том, что теперь отделу кадров придется заполнять данные, вызывая функции языка Python с правильными параметрами. Одна функция — setup_profile(name, vacation_dates) — предназначена для того, чтобы задать всю информацию про работника. А ещё несколько функций пользуются установленными значениями, чтобы оформить документы на отпуск: заявление на отпуск print_application_for_leave(), заявление на выплату отпускных print_holiday_money_claim(amount), и доверенность на передачу своих служебных полномочий заместителю print_attorney_letter(to_whom).
Напишите эти четыре функции, так чтобы каждая печатала соответствующую справку. Примеры справок приведены в тестовом выводе. Не ошибайтесь в точных формулировках документов, бюрократы это не любят.
Пример
Ввод
Вывод
Задача 8
Ваш друг любит пересылать вам в чат анекдоты и байки, но часто забывает, какие анекдоты он уже рассказал, причём теми же словами дословно. Чтобы не отвлекаться от важных дел на старые анекдоты, вы решили написать функцию print_only_new(message), которая печатает сообщение только если вы такое сообщение ещё никогда не получали.
Пример
Ввод
Вывод
Задача 9
На прием к доктору Айболиту как всегда большая очередь. Так как желающих очень много, то было принято решение в регистратуре открыть еще два окна, при этом написать программу для автоматизации приема больных.
Напишите функцию hello(name), которая принимает на вход имя пациента, приветствует его и сообщает, что его медицинскую карту ищут.
Для поиска медицинской карты напишите функцию search_card(name), которая тоже принимает на вход имя пациента. Эта функция выводит информацию о номере карточки пациента или о том, что она не найдена. Список имён пациентов, пронумерованный с 1, находится в списке base, который является глобальным. Номер пациента соответствует номеру карты.
Пример
Ввод
Вывод