Education 1.1 Help

Задачи

Задача 1

Боба очень любит попугаев, но у него аллергия на птиц. Поэтому он захотел создать себе электронного попугая.

Напишите функцию parrot(phrase), которая будет симулировать речь попугая. Если в переменной phrase находится предложение, которое попугай слышал хотя бы один раз, то функция печатает эту фразу.

Пример 1

Ввод

parrot("Привет!") parrot("Привет!") parrot("Как дела?")

Вывод

Привет!

Пример 2

Ввод

parrot("Привет") parrot("Как тебя зовут?") parrot("Привет")

Вывод

Привет!

Задача 2

Иван Иванович работает в крупной компании. Обычно в обеденный перерыв он ходит в местную столовую. Начальство хочет возместить расходы на питание.

Для большего комфорта сотрудников возмещение выдаётся за любые несколько дней прошедшего месяца. Напишите функцию count_food(days), которая принимает на вход массив чисел от 1 до 31 и возвращает, сколько в сумме было потрачено на обеды в эти дни. Сумма, потраченная в каждый из дней, находится в глобальном массиве daily_food. Например, daily_food[0] – сумма, потраченная в первый день.

Формат ввода

Список целых чисел, каждое из которых – номера дней в месяце

###Формат вывода

Целое число – сумма, потраченная за указанные дни на питание.

Пример 1

Ввод

daily_food = [0, 150, 150] print(count_food([1]))

Вывод

0

Пример 2

Ввод

daily_food = [0, 150, 150] print(count_food([2, 3]))

Вывод

300

Задача 3

Напишите пример, который продемонстрирует отличия между методом sort() списка и функцией sorted(arr). На основе вашего кода должно быть возможно показать, какой из вариантов меняет список, а какой – создает новый, отсортированный список.

Примечания

В качестве решения приложите файл с кодом, в котором обязательно должны присутствовать комментарии, поясняющие работу программы.

Задача 4

Объясните и исправьте ошибку в функции continue_fibonacci_sequence(sequence, n), которая принимает часть последовательности Фибоначчи sequence и продолжает её на n элементов. Список sequence представляет из себя несколько – не менее двух – чисел, следующих в последовательности Фибоначчи друг за другом.

def continue_fibonacci_sequence(sequence, n): for i in range(n): next_element = sequence[-1] + sequence[-2] sequence = sequence + [next_element]

Пример 1

Ввод

sequence = [1, 1] continue_fibonacci_sequence(sequence, 1) print(*sequence)

Вывод

ГОРИ

Пример 2

Ввод

sequence = [1, 1, 2, 3, 5] continue_fibonacci_sequence(sequence, 0) print(*sequence)

Вывод

1 1 2 3 5

Задача 5

Посмотрите на функцию mirror(arr), которая должна список длины N превратить в список длины 2N, первая половина которого равна исходному списку, а вторая половина равна перевёрнутому («отражённому» относительно конца):

def mirror(arr): mirrored_part = arr.reverse() arr = arr + mirrored_part

В эту функцию вкралась ошибка. Найдите её, исправьте и отправьте корректную функцию на проверку в тестирующую систему.

Пример 1

Ввод

arr = [1, 2] mirror(arr) print(*arr)

Вывод

1 2 2 1

Пример 2

Ввод

arr = [1] mirror(arr) print(*arr)

Вывод

1 1

Задача 6

Напишите функцию from_string_to_list(string, container), которая принимает два аргумента: строку string, состоящую из целых чисел, написанных через пробел, и список container. Функция должна извлечь из строки числа и добавить их в конец списка.

Пример 1

Ввод

a = [1, 2, 3] from_string_to_list("1 3 99 52", a) print(*a)

Вывод

1 2 3 1 3 99 52

Пример 2

Ввод

a = [77, 'abc'] from_string_to_list("", a) print(*a)

Вывод

77 abc

Задача 7

Напишите функцию transpose(matrix), которая принимает матрицу N × M (т.е. список из N списков-строк по M элементов каждый) и транспонирует её, т.е. превращает строки в столбцы и наоборот. i-ая строка при этом превращается в i-й столбец.

Пример 1

Ввод

matrix = [[1]] transpose(matrix) for line in matrix: print(*line)

Вывод

1

Пример 2

Ввод

matrix = [[1, 2], [3, 4]] transpose(matrix) for line in matrix: print(*line)

Вывод

1 3 2 4

Задача 8

Для хитроумного приспособления, которое обменивает людей личностями, вы должны написать функцию, которая принимает список мыслей одного человека и другого, а затем обменивает их содержимым.

Функция должна называться swap(first, second). Первый список должен получить содержимое второго списка, и наоборот.

Пример 1

Ввод

first = [1, 2, 3] second = [4, 5, 6] first_content = first[:] second_content = second[:] swap(first, second) print(first, second_content, first == second_content) print(second, first_content, second == first_content)

Вывод

[4, 5, 6] [4, 5, 6] True [1, 2, 3] [1, 2, 3] True

Пример 2

Ввод

first = [1, 2, 3] second = [4, 5, 6, 7] first_content = first[:] second_content = second[:] swap(first, second) print(first, second_content, first == second_content) print(second, first_content, second == first_content)

Вывод

[4, 5, 6, 7] [4, 5, 6, 7] True [1, 2, 3] [1, 2, 3] True
Last modified: 12 June 2024