Найти тему
Заметки по Python

Основы Python. Часть 16

Оглавление

Цели практической работы

  • Закрепить понятия «пространство имён» и «область видимости» и работу с ними, использование global и nonlocal.
  • Отработать создание и использование лямбда-функций, в том числе встроенных в Python.
  • Отработать использование блока if __name__ == "__main__" для чистоты кода.

Что входит в работу

  • Задача 1. Новые списки.
  • Задача 2. И снова zip.
  • Задача 3. Палиндром: возвращение.
  • Задача 4. Уникальный шифр.

Задача 1. Новые списки

Что нужно сделать

Даны три списка:

floats: List[float] = [12.3554, 4.02, 5.777, 2.12, 3.13, 4.44, 11.0001]
names: List[str] = ["Vanes", "Alen", "Jana", "William", "Richards", "Joy"]
numbers: List[int] = [22, 33, 10, 6894, 11, 2, 1]

Напишите код, который создаёт три новых списка. Вот их содержимое:

  1. Каждое число из списка floats возводится в третью степень и округляется до трёх знаков после запятой.
  2. Из списка names берутся только те имена, в которых есть минимум пять букв.
  3. Из списка numbers берётся произведение всех чисел.

Задача 2. И снова zip

Помните, как нам приходилось что-то выдумывать, чтобы создать аналог функции zip? Так вот, теперь вы знаете, как это сделать буквально в одну строку.

Даны список букв (letters) и список цифр (numbers). Каждый список состоит из N элементов. Создайте кортежи из пар элементов списков и запишите их в список results. Не используйте функцию zip. Решите задачу «в одну строку» (не считая print(results)).

-2

Задача 3. Палиндром: возвращение

Для Python существует множество различных библиотек для работы с данными, причём как встроенных, так и внешних. С некоторыми из них мы уже работали, например с модулем collections, когда использовали специальный класс OrderedDict, с помощью которого делали упорядоченный словарь. Конечно же, в этой библиотеке есть и другие возможности (на самом деле их совсем немного).

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

-3

Задача 4. Уникальный шифр

Представьте, что вы — детектив, который получил загадочное письмо с шифровкой. Нужно найти количество уникальных символов в письме, чтобы разгадать его и раскрыть тайну.

Задача

Напишите функцию, которая принимает строку и возвращает количество уникальных символов в строке. Используйте для выполнения задачи lambda-функции и map и/или filter.

Сделайте так, чтобы алгоритм НЕ был регистрозависим: буквы разного регистра должны считаться одинаковыми.

-4

Наука
7 млн интересуются