Семинары ведут: Щуров И.В., Будылин Р.Я., НИУ ВШЭ
Данный notebook является набором задач по курсу «Программирование на языке Python для сбора и анализа данных» (НИУ ВШЭ, 2014-15). Тексты задач взяты с сайта http://informatics.mccme.ru/. На странице курса находятся другие материалы.
За разные задачи можно получить разное число баллов. Максимум за ДЗ можно набрать 14 баллов. Вы можете решить больше задач, чем требуется, чтобы набрать 14 баллов, чтобы подстраховаться.
В задачах A и B вы можете использовать один из двух подходов к решению: либо использовать продвинутые средства Python для работы со списками, как это обсуждалось на лекции (включая срезы, присваивание срезам, метод insert()
, функцию del
), либо решать эти задачу «вручную», то есть пользоваться только присваиванием одного элемента списка другому элементу, добавлением элемента в конец с помощью append()
и удалением элемента из конца с помощью pop()
. В первом случае вы получите за эти задачи 1 балл, во втором случае (он технически сложнее и требует некоторых размышлений) — 2 балла.
При решении задач A и B на два балла можно использовать один или два раза split()
(исключительно для получения входного списка) и один раз join()
для вывода итогового списка (если вы знаете, что это такое).
range
бывает третий аргумент, то есть можно сделать не только A[1:10]
, но и A[1:10:3]
, а также range(1,10,3)
. Посмотрите, что получится."1 2 45 hello"
в список ['1', '2', '45', 'hello']
, можно использовать метод split()
строки. Например:s = "1 2 45 hello"
s.split()
['1', '2', '45', 'hello']
Во всех задачах нельзя использовать функции sum
, min
, max
, а также какие-либо import
.
Дан список целых чисел, число k и значение C. Необходимо вставить в список на позицию с индексом k элемент, равный C, сдвинув все элементы имевшие индекс не менее k вправо.
Посколько при этом количество элементов в списке увеличивается, после считывания списка в его конец нужно будет добавить новый элемент, используя метод `append()`.
Вставку необходимо осуществлять уже в считанном списке, не делая этого при выводе и не создавая дополнительного списка.
Вводится список чисел. Все числа списка находятся на одной строке. На второй строке вводятся числа k и C.
Выведите ответ на задачу.
7 6 5 4 3 2 1 2 0
7 6 0 5 4 3 2 1
Дан список из чисел и индекс элемента в списке k. Удалите из списка элемент с индексом k, сдвинув влево все элементы, стоящие правее элемента с индексом k.
Программа получает на вход список, затем число k. Программа сдвигает все элементы, а после этого удаляет последний элемент списка при помощи метода `pop()`.
Программа должна осуществлять сдвиг непосредственно в списке, а не делать это при выводе элементов. Также нельзя использовать дополнительный список.
Выведите ответ на задачу.
7 6 5 4 3 2 1 2
7 6 4 3 2 1
Выведите все элементы списка с четными индексами
(то есть A[0]
, A[2]
, A[4]
, ...).
Программа должна быть эффективной и не выполнять лишних действий!
Вводится список чисел. Все числа списка находятся на одной строке.
Выведите ответ на задачу.
1 2 3 4 5
1 3 5
Дано 10 целых чисел. Вычислите их сумму. Напишите программу, использующую наименьшее число переменных.
Вводятся 10 целых чисел. Каждое число вводится в отдельной строке.
Выведите ответ на задачу.
0 1 2 3 4 5 6 7 8 9
45
Дано несколько чисел. Вычислите их сумму. Сначала вводите количество чисел N, затем вводится ровно N целых чисел. Какое наименьшее число переменных нужно для решения этой задачи?
В первой строке вводится натуральное число N - количество чисел. В следующих N строках вводится по одному целому числу.
Выведите ответ на задачу.
2 235 56
291
Переставьте соседние элементы списка (A[0]
c A[1]
,
A[2]
c A[3]
и т.д.).
Если элементов нечетное число, то последний элемент остается на своем месте.
Вводится список чисел. Все числа списка находятся на одной строке.
Выведите ответ на задачу.
1 2 3 4 5
2 1 4 3 5
Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. При решении этой задачи нельзя пользоваться условной инструкцией и циклом.
Вводится положительное действительное число.
Выведите ответ на задачу.
1.79
7
Напишите программу, которая по данному числу n от 1 до 9 выводит на экран n пингвинов. Изображение одного пингвина имеет размер 5×9 символов, между двумя соседними пингвинами также имеется пустой (из пробелов) столбец. Разрешается вывести пустой столбец после последнего пингвина. Для упрощения рисования скопируйте пингвина из примера в среду разработки.
Вводится натуральное число.
Выведите ответ на задачу.
Учтите, что вывод данных на экран производится построчно, а не попингвинно.
В некоторых языках программирования символ обратного слэша “\” в текстовых строках
имеет специальное значение. Чтобы включить в состав текстовой
строки такой символ, его нужно повторить дважды. Например,
для вывода на экран одного такого символа можно использовать
такой код: print("\\")
.
3
_~_ _~_ _~_ (o o) (o o) (o o) / V \ / V \ / V \ /( _ )\ /( _ )\ /( _ )\ ^^ ^^ ^^ ^^ ^^ ^^
1
_~_ (o o) / V \ /( _ )\ ^^ ^^