Skip to content

aPyRoit/python-c-p-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Контрольная точка №2. Списки в Python.

Преподаватель: Луговой Филипп

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

Репозиторий нужно склонировать на свой компьютер (!!!не использовать форк!!!), написать решение в файле contest/main.py, после чего создать публичный репозиторий в своем GitHub аккаунте и в ответ на КТ прикрепить ссылку на свой репозиторий с готовым решением.

ВНИМАНИЕ:

  • решение пишется в файле contest/main.py, нельзя изменять название функций, можно менять имена параметров в функциях;
  • нельзя изменять файлы с тестами, в противном случае можете получить 0 баллов
  • если потребуется, можно поменять версию Python

Запуск тестов

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

make tests
# или
uv run pytest -vv

Задача 1: Форматирование номера телефона

Функция: create_phone_number

Описание:
Напишите функцию, которая принимает массив из 10 целых чисел (от 0 до 9) и возвращает строку с этими числами в формате телефонного номера.

Формат вывода:
(XXX) XXX-XXXX (обязательно с пробелом после закрывающей скобки).

Пример:

create_phone_number([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])  # Вернет "(123) 456-7890"

Задача 2: Кодирование строки

Функция: duplicate_encode

Описание: Функция преобразует строку в новую строку, где каждый символ заменяется на:

"(" — если символ встречается в исходной строке один раз;

")" — если символ встречается более одного раза.

Регистр букв не учитывается при определении дубликатов.

Примеры:

duplicate_encode("din")        # Вернет "((("
duplicate_encode("recede")     # Вернет "()()()"
duplicate_encode("Success")    # Вернет ")())())"
duplicate_encode("(( @")       # Вернет "))(("

Задача 3: Десятиминутная прогулка

Функция: is_valid_walk

Описание: Город имеет прямоугольную сетку улиц. Вам нужно решить, приведет ли предложенный маршрут обратно на стартовую точку ровно через 10 минут. Каждое направление Север, Юг, Запад, Восток обозначается как('n', 's', 'w', 'e') и занимает 1 минуту.

Функция получает список направлений и возвращает:

True — если прогулка займет 10 минут и вернет вас в исходную точку;

False — в противном случае.

Примечание:

Входной список всегда корректен (содержит только указанные буквы) и не пустой.

Пример:

is_valid_walk(['n','s','n','s','n','s','n','s','n','s'])  # True (10 минут, возврат)
is_valid_walk(['w','e','w','e','w','e','w','e','w','e','w','e'])  # False (12 минут)
is_valid_walk(['n','n','n','s','n','s','n','s','n','s'])  # False (не возврат)

Задача 4: Перемещение нулей в конец

Функция: move_zeros

Описание: Напишите алгоритм, который принимает массив и перемещает все нули в его конец, сохраняя порядок остальных элементов.

Пример:

move_zeros([1, 0, 1, 2, 0, 1, 3])  # Вернет [1, 1, 2, 1, 3, 0, 0]

Задача 5: Поиск уникального числа

Функция: find_uniq

Описание: В массиве все числа равны, кроме одного. Найдите это уникальное число. Гарантируется, что в массиве минимум 3 элемента.

Примеры:

find_uniq([1, 1, 1, 2, 1, 1])     # Вернет 2
find_uniq([0, 0, 0.55, 0, 0])     # Вернет 0.55

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors