You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 KiB

Лабораторная работа №2

Предлагается решить 10 задач на закрепление синтаксиса и наработки навыка решения типовых задач, с которыми далее вы столкнетесь в том или ином виде.

Напоминаю: гуглить - залог успеха.

Задача 1.

Дан список случайных целых чисел arr.

Реализуйте функцию, которая будет принимать список и возвращать кортеж состояющий из:

  1. Максимума

  2. Минимума

  3. Среднего

  4. Медианы

In [2]:
# Здесь ничего менять не надо, это исходные данные с которыми будете работать
import random

# в arr будет записан список из 50 случайных целых чисел в диапазоне от -100 до 100
arr = random.sample(range(-100, 100), 50)
In [4]:
# Убедимся в этом
print(arr)
[-39, -27, -6, -80, -63, 85, 80, 20, 48, 59, 76, 77, -23, 58, 49, 84, -14, -90, -61, 69, -15, -3, -89, -74, 93, 40, -54, -75, 4, 6, -57, -1, -8, 61, 31, -91, 35, -100, -73, -51, 28, 63, 16, 45, -19, 54, 27, -11, -5, -40]
In [5]:
# в данной функции реализуйте нахождение максимума, минимума, среднего и медианы. Вернуть их в любом порядке. 
# Слова max, min, mean являются КЛЮЧЕВЫМИ не именуйте так свои переменные!

def list_stat(arr):
    """
    Напишите здесь свой код
    """
    pass
In [18]:
print(list_stat(arr))
None

Задача 2.

Дан список из предыдущей задачи.

Создайте функцию, которая принимает список и возвращает отсортированный по убыванию список из которого удалены все ОТРИЦАТЕЛЬНЫЕ ЧЕТНЫЕ числа.

Подсказка: можно решить итеративно в лоб, добавляя в новый список требуемые элементы. Либо использовать filter(), про который можно прочесть в документации (потребуется посмотреть еще лямбда-функции).

In [26]:
# Введите здесь свое решение

Задача 3.

Дана строка.

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

Подсказка: прочитайте про функцию split(). Обратите внимание, что нужно удалить все знаки препинания.

In [24]:
s = 'On the other hand, we denounce with righteous indignation and \
dislike men who are so beguiled and demoralized by the charms of \
pleasure of the moment, so blinded by desire, that they cannot \
foresee the pain and trouble that are bound to ensue; and equal \
blame belongs to those who fail in their duty through weakness of will, \
which is the same as saying through shrinking from toil and pain.'
In [27]:
# Введите здесь свое решение

Задача 4

Дана строка из задачи выше.

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

In [37]:
# Введите здесь свое решение

Задача 5

Дана строка из задачи выше.

Создайте функцию, которая принимает строку и удаляет все слова начинающиеся на t (регистр не имеет значения) и возвращает полученную строку.

In [38]:
# Введите здесь свое решение

Задача 6

Дана строка из задачи выше.

Посчитайте количество глассных и согласных букв. Выведите результат.

In [39]:
# Введите здесь свое решение

Задача 7

Из приложенного файла lab_2.txt считать текст.

Посчитайте количество предложений в нем и выведите.

In [41]:
# Введите здесь свое решение

Задача 8

Заданы два вектора.

Напишите функцию которая принимает два списка и возвращает значение их скалярного произведения.

In [42]:
vec_1 = [0, 1, 15]
vec_2 = [2, 4, 3]
In [43]:
# Введите здесь свое решение

*Задача 9

Дан список состоящий из пар натуральных чисел и одного непарного числа. Найти это число и вывести.

Подсказка: можно и нужно использовать оператор XOR. Другие варианты тоже сойдут.

In [60]:
list_with_forever_alone = [2, 1, 3, 3, 1, 5, 2, 6, 9, 8, 8, 9, 2, 6, 5, 3, 2]
In [61]:
# Введите здесь свое решение

*Задача 10

Дан список натуральных чисел. Вывести все числа, являющиеся степенью двойки.

In [62]:
list_with_power_two = [24, 13, 25, 32, 17, 8, 2, 14, 0, 16, 1]
In [63]:
# Введите здесь свое решение