За разные задачи можно получить разное число баллов. Максимум за ДЗ можно набрать 8 баллов. Вы можете решить больше задач, чем требуется, чтобы потренироваться.
Чтобы сдать ДЗ, его надо загрузить на Dropbox в виде ipynb
-файла. Получить ipynb
-файл можно, выбрав в Jupyter пункт меню File → Download as... → Notebook (.ipynb).
Алгоритм работы:
ipynb
-файл с домашним заданием.# YOUR CODE HERE
.Обратите внимание: выводимый на экран результат должен полностью совпадать с условием. Если, например, код технически работает правильно, но выводит сообщение вида следующее число 6
вместо Следующее число: 6.
, такое решение будет считаться частично верным и оцениваться на неполный балл (например, 0.5 из 1).
Напишите программу, которая запрашивает у пользователя любой адрес в одну строку в формате: город,улица,дом и выводит на экран список из отдельных элементов адреса. Обратите внимание на отстутствие пробела после запятых во входных данных, это важно!
Пример.
Входные данные:
Москва,Мясницкая,20
Выходные данные:
['Москва', 'Мясницкая', '20']
# YOUR CODE HERE
Дан список станций желтой ветки московского метро (упорядочены как на карте):
line = ["Третьяковская", "Марксистская", "Площадь Ильича", "Авиамоторная",
"Шоссе Энтузиастов", "Перово", "Новогиреево", "Новокосино"]
Давайте считать, что движение происходит от Третьяковской до Новокосино.
Напишите программу, которая запрашивает у пользователя название текущей станции метро (без лишнего пробела на конце) и выводит на экран сообщение вида
Следующая станция: станция
Считайте, что пользователь знает, какая станция конечная, и не будет запрашивать станцию, следующую после Новокосино.
Пример.
Входные данные:
Введите текущую станцию: Площадь Ильича
Выходные данные:
Следующая станция: Авиамоторная
Подсказка. Чтобы вернуть индекс определенного элемента в списке, нужно воспользоваться методом .index()
.
# YOUR CODE HERE
Напишите программу, которая запрашивает целое число n
с клавиатуры, затем n
целых чисел, после чего выводит произведение всех этих чисел.
Пример.
Входные данные:
3
9
2
5
Выходные данные:
90
# YOUR CODE HERE
Дан словарь с записями, ключами которых являются числовые id, а значениями – города.
cities = {100: 'Москва', 101: 'Санкт-Петербург', 103: 'Екатеринбург', 104: 'Пермь',
107: 'Красноярск', 111 : 'Киров'}
Напишите программу, которая просит пользователя ввести с клавиатуры сначала ключ, потом значение, а затем:
если в словаре cities
есть запись с таким ключом, на экран выводится сообщение "Запись с таким ключом существует. Введите другой ключ."
если в словаре cities
нет записи с таким ключом, в этот словарь добавляется запись с введенным ключом и значением + обновленный словарь cities
выводится на экран.
Обратите внимание, id должны быть целочисленными!
Пример.
Входные данные:
Введите ключ: 101
Введите значение: Мурманск
Выходные данные:
Запись с таким ключом существует. Введите другой ключ.
Входные данные:
Введите ключ: 117
Введите значение: Омск
Выходные данные (порядок записей может быть другим):
{100: 'Москва', 101: 'Санкт-Петербург', 103: 'Екатеринбург', 104: 'Пермь',
107: 'Красноярск', 111 : 'Киров', 117 : 'Омск'}
Подсказка. используйте оператор in
.
# YOUR CODE HERE
Напишите функцию int_list()
, которая принимает на вход список строк, представляющих собой целые числа, и возвращает новый список из целых чисел. Функция не должна ничего печатать (выводить на экран).
Пример работы функции.
Применение:
int_list(['1', '3', '5', '18'])
Результат:
[1, 3, 5, 18]
# YOUR CODE HERE
Напишите функцию dummy()
, которая принимает на вход список значений индекса Freedom House в старой шкале от 1 до 8, и возвращает список из 0 и 1, где 1 соответствует свободным странам, то есть странам со статусом Free со значениями индекса от 1.0 до 2.5 включительно. Функция не должна ничего печатать (выводить на экран).
Примеры работы функции.
Применение:
dummy([2.5, 3.0, 2.7, 3.6, 4.8, 6.5, 1.0, 1.5, 7.0])
Результат:
[1, 0, 0, 0, 0, 0, 1, 1, 0]
Применение:
dummy([3.5, 3.0, 2.7, 3.6])
Результат:
[0, 0, 0, 0]
# YOUR CODE HERE
Дан словарь, содержащий информацию по станциям метро в Новосибирске (станции в списке указаны последовательно, с севера на юг в случае Ленинской ветки, и с запада на восток в случае Дзержинской ветки).
nmetro = {"Ленинская" : ["Заельцовская", "Гагаринская", "Красный проспект", "Площадь Ленина",
"Октябрьская", "Речной Вокзал", "Студенческая", "Площадь Маркса"],
"Дзержинская" : ["Площадь Гарина-Михайловского","Сибирская","Маршала Покрышкина",
"Березовая Роща", "Золотая Нива"]}
Напишите программу, которая запрашивает у пользователя сначала название текущей станции без пробела на конце, затем направление движения ('1' – с севера на юг или с запада на восток, '2' – с юга на север или с востока на запад) и выводит на экран название следующей станции.
Считайте, что пользователь знает, какие станции являются конечными, и не будет запрашивать станцию, следующую после конечной.
Пример.
Входные данные:
Введите название текущей станции: Гагаринская
Выберите направление движения (1 - с севера на юг или с запада на восток, 2 - с юга на север или с востока на запад): 2
Выходные данные:
Следующая станция: Заельцовская
Входные данные:
Введите название текущей станции: Сибирская
Выберите направление движения (1 - с севера на юг или с запада на восток, 2 - с юга на север или с востока на запад): 1
Выходные данные:
Следующая станция: Маршала Покрышкина
# YOUR CODE HERE
Напишите программу, которая просит пользователя ввести текст без знаков препинания (просто слова через пробел) и выводит на экран словарь, где ключами являются буквы, а значениями ‒ их частота. Обратите внимание, одна и та же буква в разных регистрах (заглавная или строчная) должна считаться как одна и та же буква.
Пользоваться можно только базовыми средствами Python: циклы и условные конструкции, методы для строк, списков, словарей.
Пример.
Входные данные:
Введите текст: Люблю грозу в начале мая
Выходные данные:
{'м': 1, 'я': 1, 'е': 1, 'а': 3, 'н': 1, 'з': 1, 'в': 1, 'ю': 2, 'ч': 1, 'у': 1, 'р': 1, 'б': 1, 'л': 3, 'г': 1, 'о': 1}
Входные данные:
Введите текст: ABBA Brilliant concert
Выходные данные:
{'l': 2, 't': 2, 'o': 1, 'r': 2, 'e': 1, 'b': 3, 'c': 2, 'i': 2, 'n': 2, 'a': 3}
# YOUR CODE HERE
Дан словарь cols
с соответствиями цветов при переводе изображения в негатив (очень примерно):
cols = {'white': 'black', 'red' : 'green', 'yellow': 'blue'}
Напишите функцию RevertCol()
, которая принимает на вход список цветов, используемых в изображении, и возвращает список цветов этого изображения, переведенного в негатив. Словарь cols
менять нельзя! Функция не должна ничего печатать (выводить на экран).
Пример работы функции.
Применение:
RevertCol(['white', 'red', 'black', 'green', 'yellow', 'blue'])
Результат:
['black', 'green', 'white', 'red', 'blue', 'yellow']
# YOUR CODE HERE
Напишите функцию eq_solve()
, которая принимает на вход строку с квадратным уравнением (без пробелов между знаками и со всеми коэффициентами, записанными явно, включая 1 и -1) и решает квадратное уравнение:
Считайте, что квадратное уравнение уже приведено к стандартному виду:
$$ax^2+bx+c=0$$Нельзя: использовать библиотечные функции (кроме sqrt()
из модуля math
), регулярные выражения.
Можно: создавать вспомогательные функции внутри основной функции eq_solve()
, использовать условия, циклы, методы для строк, списков и прочие объекты, обсуждаемые на лекциях.
Примеры работы функции.
Применение:
eq_solve('1x^2+6x+9=0')
Вывод на экран:
Уравнение имеет одно решение
Возвращаемый результат:
[-3.0]
Применение:
eq_solve('-2x^2-6x+9=0')
Вывод на экран:
Уравнение имеет два решения
Возвращаемый результат:
[-4.098076211353316, 1.098076211353316]
Применение:
eq_solve('3x^2-1x+10=0')
Вывод на экран:
Уравнение имеет только комплексные корни
Возвращаемый результат:
[]
# YOUR CODE HERE