Встроенные функции Python для ввода и вывода (print, input)

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Печатает объекты в текстовый поток.

Именованный параметр sep задаёт разделитель между элементами. Если параметр не установлен или равен None используется пробел.

Именованный параметр end задаёт текст печатаемый к конце. Если параметр не установлен или равен None используется перевод строки.

Все не именованные аргументы преобразуются в строки функцией str():

print() без аргументов печатает end — перевод строки.

Аргумент file должен быть объектом с методом write(string). Если аргумент не задан или равен None то используется sys.stdout.

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

input([prompt])

Если задан аргумент prompt, он будет выведен в стандартный поток вывода без перевода на новую строку. Затем функция читает строку из входного потока, преобразовывает её в строку, удаляет завершающий перевод строки и возвращает результат. Если достигнут конц потока (EOF) выбрасывается исключение EOFError.

Ссылки

Встроенные функции Python для работы с коллекциями (sorted, filter, zip, reversed, len)

sorted()

Возвращает новый сортированный список (list) из элементов iterable.

Порядок элементов изменяется аргументом key. Переданная в key функция применяется к каждому элементу. Результат функции используется для определения порядка элементов:

Логический аргумент reverse задаёт обратную сортировку:

Читать далее Встроенные функции Python для работы с коллекциями (sorted, filter, zip, reversed, len)

Встроенные функции Python для работы с коллекциями (min, max, sum, all, any, enumerate)

max

  • max(iterable, *[, key, default])
  • max(arg1, arg2, *args[, key])

Функция возвращает максимальный элемент. Две версии функции отличаются аргументами: с итерируемым объектом и со списком аргументов.

Если коллекция пустая возникнет исключение

Именованный аргумент default используется чтобы избежать исключения. Функция max возвращает default только если коллекция пустая:

Порядок элементов изменяется аргументом key. Переданная в key функция применяется к каждому элементу. Результат функции используется для определения порядка элементов:

Читать далее Встроенные функции Python для работы с коллекциями (min, max, sum, all, any, enumerate)

Встроенные математические функции Python

Стандартные функции доступные без подключения модулей.

abs(x)

Возвращает модуль числа. Аргумент x может быть целым (int) или вещественным (float) числом.

Для комплексных чисел возвращает длину вектора изображающего комплексное число:

Если x определяет метод __abs__(), то abs(x) вернёт x.__abs__().

pow(base, exp[, mod])

Возвращает base в степени exp:

Допустима отрицательная и вещественная степень:

Если указан третий аргумент mod, функция вернёт остаток по модулю:

Читать далее Встроенные математические функции Python

Python. Наследование

Перевод параграфа 6.4 Inheritance из книги Intermediate Python.

Наследование — это механизм создания новых классов. Наследники специализируют или изменяют базовые классы добавляя в них новую функциональность. Python поддерживает множественное наследование как C++. Пример одиночного наследования в Python:

Читать далее Python. Наследование

Python. Абстрактные базовые классы

Перевод параграфа 6.7 Abstract Base Classes из книги Intermediate Python.

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

Простая реализация такого контракта в Python — добавить в базовый класс методы по умолчанию, выбрасывающие исключение NotImplementedError. Такое решение неполное: наследники могут не переопределить все методы базового класса, а проблема обнаружится только во время выполнения программы.

Рассмотрим другую ситуацию — использование одного объекта для замещения другого. Заместитель перехватывает все вызовы и передаёт их в скрываемый объект. Заместитель реализует все нужные методы, но проверку типа через isinstance он не проходит, так как имеет тип отличный от замещаемого объекта.

В Python такие задачи решаются через абстрактные базовые классы, реализуемые модулем abc. Этот модуль определяет мета-класс и набор декораторов. Для определения абстрактного базового класса мы устанавливаем ABCMeta как мета-класс абстрактного класса и помечаем декораторами @abstractmethod и @abstractproperty методы и свойства которые должны быть реализованы в неабстрактных потомках.

Читать далее Python. Абстрактные базовые классы

Python. Статические и классовые методы

Перевод параграфа 6.5 Static and Class Methods из книги Intermediate Python.

По умолчанию методы определённые в классе работают с экземплярами класса. Для определения статических и классовых методов применяются декораторы @staticmethod и @classmethod.

Статичные методы

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

Декоратор @staticmethod используется для определения статического метода. Такой метод не требует аргумента self.

Читать далее Python. Статические и классовые методы

Triangle Quest

Разберём две математические задачи с Hackerrank: Triangle Quest и Triangle Quest 2.

Дано число от 1 до 9 и нужно вывести треугольники из чисел заданного вида. Для числа 4 в первой задаче:

а во второй:

Для вывода допустимо использовать только один цикл, процедуру print и математические операции:

Читать далее Triangle Quest

Python. Имена и связывание

Пост написан на основе части 4.1 книги Intermediate Python. Obi Ike-Nwosu.

В Python, на объекты ссылаются через имена. Имена аналогичны переменным в C++ или Java.

В примере выше, x — имя которое ссылается на объект 5. Процесс присваивания ссылки на 5 в x называется связыванием. Связывание приводит к тому что имя ассоциируется с объектом.

Связывание происходит в разных ситуациях: при присваивании и при вызове методов, когда параметры связываются с аргументами.

Важная особенность: имена являются только ссылками без связанного с ними типа; имена ссылаются на объекты которые имеют тип.

Присваивание создаёт новое имя в самой внутренней области видимости программы. Если присваивание выполняется в коде модуля — имя добавляется в глобальные переменные модуля, если в коде функции — в локальные переменные функции.

Python. Выражение, строки и отступы

Пост написан на основе части 3.2 книги Intermediate Python. Obi Ike-Nwosu.

Программа на Python состоит из логических строк ограниченных токеном NEWLINE. Каждая логическая строка эквивалентна простому оператору. Составные операторы формируются из нескольких логических строк.

Логическая строка создаётся из одной или нескольких физических строк используя явные или не явные правила объединения строк. Физическая строка — это последовательность символов завершающаяся символами перевода строки (end-of-line sequence). Python неявно рассматривает физические строки как логические, устраняя необходимость в точке с запятой для разделения выражений. Однако точка с запятой может использоваться для разделения одной физической строки на несколько логических:

Читать далее Python. Выражение, строки и отступы