Задачи
Задача 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
, который является глобальным. Номер пациента соответствует номеру карты.
Пример
Ввод
Вывод