ПР 1. Функции без циклов

Открыто с: Вторник, 8 апреля 2025, 08:00
Срок сдачи: Вторник, 8 апреля 2025, 10:00
Среда выполнения: Google Colab (Python 3)

Правила: Результат выполнения задания - Google Colab с кодом. Максимальное число баллов за задание - 20.

Все ячейки должны быть "выполненными", при этом результат должен воспроизводиться при проверке (на Python 3.11). Если какой-то код не был запущен или отрабатывает с ошибками, то пункт не засчитывается. Задание, сданное после дедлайна, не принимается. Можно отправить недоделанное задание, выполненные пункты будут оценены.

Готовое задание отправляется через кнопку Share на почту nart27@gmail.com
В ответ на это задание нужно прикрепить ссылку на ваш Google Colab документ.

  1. Задание выполняется самостоятельно. 
  2. Если какие-то студенты будут уличены в списывании, все они автоматически получат за эту работу 0 баллов. 
  3. Если вы нашли в Интернете какой-то специфичный код, который собираетесь заимствовать, обязательно укажите это в задании - наверняка вы не единственный, кто найдёт и использует эту информацию. Для этого в ячейке с условием укажите в теге, <font color='blue'>какую именно генеративную модель Вы использовали</font>. Задача оценена не будет, но работа не будет обнулена.

Для решения задач этой практической работы запрещается использовать любые приложения/API для генерации кода на основе LLM.</font>

Для каждой задачи нужно создать 2 ячейки:
  • в первой условие задачи в виде текста;
  • во второй решение в виде функции и тесты для демонстрации её работы.

Задачи

1. Проверка типа переменной

Напиши функцию check_type(value), которая принимает один аргумент и возвращает строку 'int''float''str' или 'other' в зависимости от типа значения.

def check_type(value):
...

2. Чётное или нечётное число

Напиши функцию is_even(n), которая возвращает строку 'even', если n — чётное, и 'odd', если нечётное.

def is_even(n): ...

3. Проверка пустоты строки

Напиши функцию is_empty_string(s), которая возвращает True, если строка пустая (""), иначе False.

def is_empty_string(s): ...

4. Сравнение двух чисел

Функция compare(a, b) возвращает:

  • "a > b", если a больше b

  • "a < b", если a меньше b

  • "a == b", если они равны

def compare(a, b): ...

5. Максимум из трёх чисел

Напиши функцию max_of_three(a, b, c), которая возвращает наибольшее из трёх чисел.

def max_of_three(a, b, c): ...

6. Простая проверка на тип и значение

Функция is_true_boolean(x) возвращает True, если x — это именно True типа bool, а не просто значение, приводимое к истине.

def is_true_boolean(x): ...

7. Тип и значение переменной

Функция describe_value(x):

  • если x — строка, вернуть "строка"

  • если x — целое число и больше 0, вернуть "положительное число"

  • если x — целое число и меньше 0, вернуть "отрицательное число"

  • иначе вернуть "неизвестный тип"

def describe_value(x): ...

8. Проверка на делимость

Функция divisibility(n) возвращает:

  • "делится на 3 и 5", если делится на оба

  • "делится на 3", если только на 3

  • "делится на 5", если только на 5

  • "не делится", если ни на одно

def divisibility(n):
...

9. Проверка на None

Функция is_none(x) должна возвращать строку:

  • "None", если x is None

  • "not None" в остальных случаях

def is_none(x): ...

10. Приведение типов

Функция safe_int(x):

  • если x типа int, вернуть x

  • если x типа float, вернуть int(x)

  • если x строка, попытаться привести её к int, если не получится — вернуть None

  • во всех остальных случаях вернуть None

def safe_int(x): ...

11. Поиск элемента в кортеже

Функция is_in_tuple(t, x) принимает кортеж t и значение x, и возвращает:

  • "найдено", если x есть в кортеже

  • "не найдено" — если нет

def is_in_tuple(t, x): ...

12. Проверка ключа в словаре

Функция check_key(d, key) принимает словарь d и строку key, и возвращает:

  • "ключ есть", если такой ключ есть

  • "ключа нет", если его нет

def check_key(d, key): ...

13. Проверка длины списка

Функция list_length_category(lst) возвращает:

  • "пустой", если список пуст

  • "один элемент", если длина списка 1

  • "несколько элементов" — если больше одного

def list_length_category(lst):
...

14. Проверка начала строки

Функция starts_with_hello(s) возвращает True, если строка s начинается с "Hello", иначе False.

def starts_with_hello(s): ...

15. Сравнение двух списков

Функция compare_lists(a, b) возвращает:

  • "одинаковые", если списки равны по значениям и порядку

  • "почти" — если списки являются перестановками одного и того же множества значений

  • "разные" — если нет

def compare_lists(a, b): ...