Python prompt что это
Пользовательский ввод (input) в Python
О бычно программа работает по такой схеме: получает входные данные → обрабатывает их → выдает результат. Ввод может поступать как непосредственно от пользователя через клавиатуру, так и через внешний источник (файл, база данных).
В стандартной библиотеке Python 3 есть встроенная функция input() (в Python 2 это raw_input() ), которая отвечает за прием пользовательского ввода. Разберемся, как она работает.
Чтение ввода с клавиатуры
Функция input([prompt]) отвечает за ввод данных из потока ввода:
s = input() print(f»Привет, !») > мир # тут мы с клавиатуры ввели слово «мир» > Привет, мир!
input() всегда возвращает строку :
s = input() print(type(s)) > 2 >
Также у input есть необязательный параметр prompt – это подсказка пользователю перед вводом:
name = input(«Введите имя: «) print(f»Привет,
📃 Более подробное описание функции из документации:
def input([prompt]): «»» Read a string from standard input. The trailing newline is stripped. The prompt string, if given, is printed to standard output without a trailing newline before reading input. If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. On *nix systems, readline is used if available. «»» pass
Преобразование вводимые данные
Данные, введенные пользователем, попадают в программу в виде строки, поэтому и работать с ними можно так же, как и со строкой. Если требуется организовать ввод цифр, то строку можно преобразовать в нужный формат с помощью функций явного преобразования типов.
☝️ Важно : если вы решили преобразовать строку в число, но при этом ввели строку (например: test), возникнет ошибка:
ValueError: invalid literal for int() with base 10: ‘test’
def get_room_number(): while True: try: num = int(input(«Введите номер комнаты: «)) return num except ValueError: print(«Вы ввели не число. Повторите ввод») room_number = get_room_number() print(f»Комната
Input() → int
age_str = input(«Введите ваш возраст: «) age = int(age_str) print(age) print(type(age)) > Введите ваш возраст: 21 > 21 >
Input() → float
weight = float(input(«Укажите вес (кг): «)) print(weight) print(type(weight)) > Укажите вес (кг): 10.33 > 10.33 >
Input() → list (список)
list = input().split() print(list) print(type(list)) > 1 word meow > [‘1’, ‘word’, ‘meow’] >
💭 Обратите внимание, что каждый элемент списка является строкой. Для преобразования в число, можно использовать int() и цикл for. Например, так:
Ввод в несколько переменных
Если необходимо заполнить одним вводом с клавиатуры сразу несколько переменных, воспользуйтесь распаковкой:
Все переменные после распаковки будут строкового типа. Преобразовать их (например в int) можно так:
☝️ Важно : не забывайте обрабатывать ошибки:
В этом руководстве вы узнали, как принимать данные от пользователя, введенные с клавиатуры, научились преобразовывать данные из input и обрабатывать исключения.
Получение пользовательского ввода в Python с input()
Получение и обработка информации — один из важнейших элементов любого языка программирования, особенно если речь идет о получении информации от пользователей.
Python, будучи медленным относительно таких языков, как C или Java, предлагает продвинутые инструменты для получения, анализа и обработки данных от конечного пользователя.
В этом материале речь пойдет о том, какие функции Python можно использовать для этих целей.
Ввод в Python
Когда input() или raw_input() вызываются, поток программы останавливается до тех пор, пока пользователь не введет данные через командную строку. Для ввода нужно нажать Enter после завершения набора текста. Обычно Enter добавляет символ новой строки ( \n ), но не в этом случае. Введенная строка просто будет передана приложению.
Сравнение функций input и raw_input
Разница между этими функциями зависит от версии Python. Так, в Python 2 функция raw_input() используется для получения ввода от пользователя через командную строку, а input() оценивает ее и попробует запустить как код Python.
Взгляните на пример функции raw_input в Python 2.
Вывод
А вот как она работает в Python 3
Вывод
Дальше в материале будет использоваться метод input из Python 3, если не указано другое.
Строковый и числовой ввод
По умолчанию функция input() конвертирует всю получаемую информацию в строку. Прошлый пример продемонстрировал это.
С числами нужно работать отдельно, поскольку они тоже изначально являются строками. Следующий пример показывает, как можно получить информацию числового типа:
Вывод
Того же можно добиться и таким образом:
Здесь сразу после сохранения ввода происходит преобразование и присваивание значения переменной.
Нужно лишь отметить, что если пользователь ввел не целое число, то код вернет исключение (даже если это число с плавающей точкой).
Обработка исключений ввода
Есть несколько способов, как можно удостовериться в том, что пользователь ввел корректные данные. Один из них — перехватывать все возможные ошибки, которые могут возникнуть.
Вот такой код считается небезопасным:
Запустим его и введем следующее:
Вот как можно сделать код безопаснее и обработать ввод:
Вот так будет выглядеть вывод с исключением.
Такой код можно объединить с другой конструкцией, например, циклом for, чтобы убедиться, что код будет выполняться постоянно, до тех пор, пока пользователь не введет те данные, которые требуются.
Полный пример
Вывод:
Выводы
В этой статье вы узнали, как встроенные инструменты Python используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.
Мелкая питонячая радость #9: консольные приложения с человеческим лицом
Философы говорят, что людей нужно оценивать не по тому, как высоко они могут забраться, а по тому, как низко они могут пасть.
В мире есть много прекрасных разработчиков, которые могут выдавать эффектные алгоритмы, изящные архитектуры и прекрасный код. Но эти же программеры берут и пишут весьма посредственно организованный код какого-нибудь маленького консольного скрипта для расчета аналитики или патча данных в базе. Никакой разбивки на классы и функции, корявая передача аргументов, примитивный вывод малопонятной информации с помощью print()
Сегодня мы поговорим о том, как сделать лучше программы, на которые большинству плевать — одноразовые консольные утилитки и скрипты.
python-nubia
Библиотека от второй по значимости в мире корпорации добра — Facebook. Тамошних инженеров тоже порядком утомил хаос в консольных приложениях, поэтому они решили снабдить их интерактивным интерфейсом. Конечно же, текстовым.
Termgraph
Для того, чтобы сделать отрисовку того, что происходит в программе, есть либа Termgraph
Она позволяет делать такие вот картинки в терминале
Или такие, посложнее
Используя простой бар, можно показывать прогресс выполнения программы в виде красивой полоски — и это уже будет круто и куда приятней вывода непонятных значений принтом.
Fabric
Скрипты для выполнения на удаленных машинах — отдельная боль. Конечно, мы живем в веке DevOps, когда кучи задач решаются с помощью Salt и Ansible. Но бывает и такое, что нужно регулярно логиниться на кластер удаленных тачек и выполнять там пачки команд. Для этого и есть fabric
Fabric построен вокруг Paramiko и вообще вы можете выполнять команды с помощью этой низкоуровневой библиотеки общения по SSH. Но Fabric дает необходимый уровень абстракции, который позволяет делать понятным и легкоиспользуемым.
python-prompt-toolkit
Эта либа превращает простой скрипт в реально мощное консольное приложение.
Например, можно добавить строку запроса команд в текстовый интерфейс.
А после этого можно добавить историю использованных команд, прямо как в вашем терминале.
А можно сделать автоподсказки строк из истории ввода.
И научить автоподсказки определенным предустановленным командам.
Либа крайне простая и дает возможность сделать свой классный и полностью кастомизируемый интерфейс.
Зачем это?
Внимательное отношение к, казалось бы, одноразовым программам позволит вам писать не код на выброс, а консольные инструменты, которые легко можно использовать повторно потом. Это экономит время и, конечно же, делает работу с вашими скриптами намного приятней.
Как вводить данные в Python с клавиатуры
Ввод данных – это способ взаимодействия с пользователями или получение данных для выведения определенного результата. Python предоставляет два встроенных метода для чтения данных с клавиатуры. Эти методы приведены ниже.
input()
Функция ввода – input() используется во всех последних версиях Python. Она принимает ввод от пользователя, а затем оценивает выражение. Интерпретатор Python автоматически определяет, вводит ли пользователь строку, число или список.
Интерпретатор Python не будет выполнять дальнейшие строки, пока пользователь не введет ввод.
Разберемся еще на одном примере.
По умолчанию функция input() принимает ввод в виде строки, поэтому, если нам нужно произвести ввод целого числа или с плавающей запятой, тогда функция input() должна быть приведена к типу.
Мы можем видеть в приведенном выше коде, где мы вводим пользовательский ввод в тип int и float.
Как работает функция input()?
Как проверить версию Python?
Мы можем проверить версию Python в нашем запущенном скрипте. Рассмотрим следующие способы узнать версию Python во всех операционных системах.
Команды | Операционная система / среда | Выход |
---|---|---|
Python – version or sys.version_info | Скрипт Python | 3.8.3 (default, May 13 2020, 15:29:51) [MSC v.1915 64 bit (AMD64)] |
Import platform platform.python_version() | Скрипт Python | “3.8.1” |
Давайте посмотрим на следующее изображение.
Справочник
Встроенные функции Python
Возвращает абсолютную величину (модуль числа).
all(iterable)
Проверяет, все ли указанные элементы принимают значение «истина».
iterable : Объект, поддерживающий итерирование.
Вернёт True, если все элементы итерируемого объекта представляются истиной (True).
Внимание: Также возвращает True, если итерируемый объект пуст.
any(iterable)
Проверяет, есть ли среди указанных элементов хотя бы один, принимающий значение «истина».
iterable : Объект, поддерживающий итерирование.
Вернёт True, если любой из элементов итерируемого объекта явится истиной.
Внимание: Возвращает False, если итерируемый объект пуст.
ascii(object)
Возвращает строковое представление объекта с экранированными не-ASCII символами.
object : Объект, для которого требуется создать строковое представление.
Как и repr(), возвращает строковое представление объекта object, но при этом экранирует не-ASCII символы, возвращённые repr() при помощи \x, \u или \U.
Преобразование целого числа в двоичную строку.
Преобразует целое число в двоичную строку. Результатом будет полноценное Python-выражение.
bool([x])
Преобразование к типу bool, использующая стандартную процедуру проверки истинности. Если х является ложным или опущен, возвращает значение False, в противном случае она возвращает True.
bytearray([source[, encoding[, errors]]])
mode : Режим компиляции кода: exec, если код состоит из последовательности инструкций; eval, если код содержит одно выражение; single, если код состоит из одной инструкции. Если код содержит несколько строк, то при использовании режимов single и eval (а до версии 3.2 ещё и exec), нужно завершить ввод не меньшей мере одним символом перевода строки.
Если исходный код содержит ошибку возбуждается исключение SyntaxError, если он содержит нулевые байты — исключение TypeError.
Объекты кода могут быть исполнены при помощи exec() или eval().
complex([real[, imag]])
Преобразование к комплексному числу.
delattr(obj, name)
Удаляет из объекта указанный атрибут.
obj : object Объект, из которого следует удалить атрибут.
name : str Строка с именем атрибута, который должен быть удалён из указанного объекта.
Атрибут объекта (свойство, метод, элемент) будет удалён в случае, если объект разрешает/поддерживает это действие.
Метод зачастую используется в случаях, когда имя атрибута заранее неизвестно и содержится в переменной.
Синоним: директива del.
Для возвращения атрибута используется getattr(). Для установки атрибута используется setattr(). Для проверки существования атрибута используется hasattr().
dir([obj])
Возвращает имена [переменных], доступные в локальной области, либо атрибуты указанного объекта в алфавитном порядке.
obj : Объект, для которого следует вернуть имена атрибутов.
При вызове без аргумента, возвращает имена [переменных], доступные в локальной области, иначе — атрибуты указанного объекта.
Определение в классе метода dir(), возвращающего список и имён, позволяет варьировать результат выполнения данной функии для экземпляров класса. Это может быть особенно полезно, когда класс определяет также методы доступа к атрибутам: getattr() и getattribute().
Для объектов, класс которых не определил dir(), функция попытается определить атрибуты по данным dict.
Возвращаемый список может включать не все атрибуты, особенно в случаях с переопределенным getattr().
Механизм извлечения имён может быть реализован по разному для различных типов: 1. Если объект является модулем, список будет содержать имена атрибутов модуля; 2. Если объект является типом или классом, список будет содержать имена атрибутов данного объекта и его родителей (вычисляются рекурсивно). 3. В других случаях список будет содержать имена атрибутов самого объекта, его класса, и классов-родителей (вычисляются рекурсивно).
dict([object])
Создаёт новый словарь. Объект dict является классом словаря.
divmod()
Для целочисленного деления возвращает пару частное-остаток от деления аргументов.
a : Число. Делимое.
b : Число. Делитель.
Если аргументы являются разными типами действуют правила двоичной арифметики.
Для целых результат аналогичен (a // b, a % b).
enumerate(sequence[, start=0])
Возвращает генератор, отдающий пары счётчик-элемент для элементов указанной последовательности.
sequence : iterable Любая последовательность, итератор, или объект, поддерживающий итерирование.
start=0 : int Начальное значение счётчика.
Функция применяется в случаях, когда необходим счётчик количества элементов в последовательности.
Позволяет избавиться от необходимости инициализировать и обновлять отдельную переменную-счётчик:
eval(expression, globals=None, locals=None)
Разбирает и исполняет указанное выражение.
expression : Выражение, которое требуется исполнить, в виде строки. Либо объект кода.
globals=None : Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить выражение. Если указан, но не содержит атрибута builtins данные указанного пространства будут дополнены данными общего глобального пространства, перед разбором выражения. Таким образом, выражение будет иметь доступ ко всем встроенным модулям.
locals=None : Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить выражение. Если не указано, то используется словарь глобального пространства. Если оба аргумента опущены, то выражение будет выполнено в среде, где был осуществлён вызов функции. В случае ошибок возбуждает SyntaxError.
Данная функция также может быть использована для выполнения произвольных объектов кода, например тех, что возвращает compile().
Если объект кода собран в режиме exec будет возвращено None.
exec(obj[, globals[, locals]])
Динамически исполняет указанный код.
obj : Строка кода, либо объект кода. Поддерживается ввод данных из файлов (считываются до EOF). Если передана строка, она разбирается в набор инструкций, который потом исполняется (если отсутствуют синтаксические ошибки). Если передан объект кода, то он исполняется. Необязательные аргументы (см. ниже) могут быть указаны в виде кортежа прямо после инструкции.
globals : Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить код. Если locals не передан, будет использован globals. Если словарь не имеет значения по ключу builtins, на это место вставляется ссылка на значение аналогичного атрибута глобального пространства. Модифицировав builtins словаря передаваемого в функцию, вы можете контролировать, какие какие из встроенных инструментов будут доступны коду.
locals : Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить код.
Если дополнительные параметры опущены, код исполняется в текущем пространстве.
Не следует пытаться модифицировать словарь locals (см. описание locals()). Если требуется влияние кода, исполненного exec() на локальную область, явно передавайте словарь locals.
filter((func, iterable)
При помощи указанной функции фильтрует элементы переданного объекта.
func : Фильтрующая функция. Должна принимать элемент фильтруемого объекта. Если функция вернёт False, данный элемент не попадёт в результат. Если передано None, считается что требуется применить тождественное отображение (lambda *args: args), таким образом все элементы, оцениваемые как False будут отфильтрованы.
iterable : Объект, элементы которого следует отфильтровать. Может быть последовательностью, объектом поддерживающим итерирование, либо итератором. Если объект является строкой, или кортежем, результат будет соответствующего типа, в остальных случаях возвращается список.
float([x])
Преобразование к числу с плавающей точкой. Если аргумент не указан, возвращается 0.0.
format(value[, format_spec])
Форматирует указанное значение.
value : Значение, которое требуется отформатировать.
format_spec : Настройки формата, в соответствии с которыми требуется выполнить форматирование. Интерпретация настроек зависит от типа значения. По умолчанию — пустая строка (обычно приводит к тому же эффекту, что и применение str ()).
Интерпретация настроек форматирования зависит от типа переданного значения, однако большинство встроенных типов используют общий мини-язык форматирования.
Вызов этой функции format(value, formatspec) транслируется в type(value).format(value, formatspec), при этом словарь экземпляра при поиске метода format() во внимание не берётся.
frozenset([iterable])
Возвращает неизменяемое множество.
getattr(obj, name[, default])
Возвращает значение атрибута объекта.
obj : object Объект, значение атрибута которого требуется получить.
name : str Имя атрибута, значение которого требуется получить.
default : Значение по умолчанию, которое будет возвращено, если объект не располагает указанным атрибутом. Если не задано, и атрибут отсутствует, возбуждается исключение AttributeError. Функция возвращает значение атрибута указанного объекта по имени.
Обычно используется в тех случаях, когда объект и/или имя атрибута может варьироваться (является переменной).
Для установки атрибута используется setattr(). Для удаления атрибута используется delattr(). Для проверки существования атрибута используется hasattr().
globals()
Возвращает словарь с глобальной таблицей символов, определённых в модуле.
Возвращает словарь с глобальной таблицей символов — словарь текущего модуля.
Если вызвана внутри функции/метода возвращает словарь модуля, в котором функция или метод определены, но не модуля из которых они были вызваны.
hasattr(obj, name)
Возвращает флаг, указывающий на то, содержит ли объект указанный атрибут.
obj : object Объект, существование атрибута в котором нужно проверить.
name : str Имя атрибута, существование которого требуется проверить. Возвращает True, если атрибут существует, иначе — False.
Функция основывается на вызове getattr() с последующей проверкой на предмет случившегося исключения.
Для возвращения атрибута используется getattr(). Для установки атрибута используется setattr(). Для удаления атрибута используется delattr().
hash(obj)
Возвращает хеш указанного объекта.
Хеш используется, в частности, для быстрого сравнения ключей при поиске по словарям. Равные числовые значения имеют одинаковый хеш, даже если значения принадлежат разным типам (например, 1 и 1.0).
Пользовательские типы могут переопределять метод hash(), результат которого будет использован при вызове hash(). Однако, следует помнить, что функция hash() обрезает значение в соответствии с битностью хоста.
Возвращает строку с шестнадцатеричным представлением указанного целого.
Получаемая строка имеет нижний регистр и префикс 0x.
id(obj)
Возвращает идентификатор указанного объекта.
obj : Объект, идентификатор которого требуется получить.
Возвращает целое, гарантированно являющееся уникальным и постоянным для объекта на время его существования.
Таким образом, объекты, периоды существования которых не пересекаются, могут иметь одинаковый идентификатор.
input([prompt])
Считывает и возвращает строку входных данных.
prompt : Строка-приглашение, которая должна быть отправлена на стандартное устройство вывода (заключительный перевод каретки при этом удаляется). Если загружен модуль readline, тогда функция воспользуется им для удобства ввода пользователя (например, для поддержки истории команд).
Функция считывает строку данных, полученную с устройства ввода и возвращает её без заключительного перевода каретки.
В случае считывания EOF (признак конца файла), поднимается исключение EOFError.
int([x=0, [base=10]])
Преобразует x к целому числу в десятичной системе счисления. Вместо десятичной системы можно указать любое основание от 2 до 36 включительно.
import(name, globals=None, locals=None, fromlist=(), level=0)
iter(obj[, sentinel])
Возвращает объект итератора.
obj : Объект коллекции, поддерживающей итерирование (реализует iter()), либо объект, поддерживающий протокол последовательности (реализует getitem(), где аргумент целое, начиная с нуля). Если передан другой объект, возбуждается TypeError.
sentinel : Если этот аргумент предоставлен, то ожидается, что obj содержит объект, поддерживающий вызов. В этом случае, созданный итератор будет вызывать указанный объект (без аргументов) с каждым обращением к своему next() и проверять полученное значение на равенство с sentinel. Если полученное значение равно sentinel, возбуждается StopIteration, иначе возвращается полученное значение. Функция возвращает итератор по объекту, поддерживающему итерирование по его элементам.
Одно из применений sentinel — чтение строк, пока не будет достигнута нужная. Следующий пример считывает файл, пока метод readline() не вернёт пустую строку:
Пользовательский тип, определивший call():
isinstance()
Возвращает флаг, указывающий на то, является ли указанный объект экземпляром указанного класса (классов).
issubclass(cls, classinfo)
Возвращает флаг, указывающий на то, является ли указанный класс подклассом указанного класса (классов).
cls : Класс, требующий проверки.
classinfo : Класс, либо кортеж с классами. Если аргумент не является классом, либо кортежем с классами, возбуждается TypeError. Возвращает True, если указанный класс является подклассом указанного класса (классов). Класс считается подклассом самого себя.
Для проверки того, является ли объект экземпляром класса (классов) используйте isinstance.
len(obj)
Возвращает число элементов в указанном объекте-контейнере.
obj : Объект-контайнер, число элементов в котором требуется определить. Возвращает число элементов в контейнерах: объекте-последовательности (строка, байты, кортеж, список, диапазон) или объекте-коллекции (словарь, множество, неизменяемое множество и пр.).
list([iterable])
locals()
Возвращает словарь, представляющий текущую локальную таблицу символов.
Обновляет и возвращает словарь с текущей локальной таблицей символов.
Если функция вызвана внутри другой функции, то она возвращает также свободные (объявленные вне функции, но используемые внутри неё) переменные.
map(func, iterable, …)
Применяет указанную функцию к каждому элементу указанной последовательности/последовательностей.
func : Функция, которую следует применить к элементам последовательности или последовательностей. Должна принимать количество элементов равное количеству последовательностей. Если передано None, считается что требуется применить тождественное отображение (lambda *args: args), при этом, если передано несколько последовательностей результат будет содержать кортежи с данными из каждой из них.
iterable : Последовательность (или объект, поддерживающий итерирование), к элементам которой требуется применить функцию. Если в какой‑либо из последовательностей количество элементов меньше, чем в остальных, недостающие элементы считаются None. Итератор останавливается, когда самая короткая из последовательностей исчерпана.
max(iterable, *args[, key, default])
Возвращает элемент с набольшим значением из переданных в функцию.
iterable : Если указан один позиционный аргумент, то ожидается, что он является итерируемым объектом. Возвращается элемент с максимальным значением, найденный среди элементов этого объекта.
args : Если указано несколько позиционных аргументов, элемент с наибольшим значением разыскивается среди них.
default : Этим аргументом можно указать значение, которое следует вернуть, если итерируемый объект окажется пустым. Если последовательность пуста и аргумент не указан, возбуждается ValueError.
В указанном итерируемом объекте, или среди аргументов, обнаруживает и возвращает элемент с набольшим значением.
memoryview(obj)
Создает объект memoryview.
Возвращает элемент с наименьшим значением из переданных в функцию.
iterable: Если указан один позиционный аргумент, то ожидается, что он является итерируемым объектом. Возвращается элемент с минимальным значением, найденный среди элементов этого объекта.
args: Если указано несколько позиционных аргументов, элемент с наименьшим значением разыскивается среди них.
default: Этим аргументом можно указать значение, которое следует вернуть, если итерируемый объект окажется пустым. Если последовательность пуста и аргумент не указан, возбуждается
В указанном итерируемом объекте, или среди аргументов, обнаруживает и возвращает элемент с наименьшим значением.
next(iter[, default])
Возвращает следующий элемент итератора.
iter : Объект итератора, возвращающий элементы.
default : Значение, которое должно быть возвращено вместо возбуждения StopIteration, в случае исчерпания элементов при итерации.
Функция вызывает метод next() указанного объекта для получения следующего элемента.
При исчерпании элементов, возбуждается исключение StopIteration.
object()
Возвращает безликий объект, являющийся базовым для всех объектов.
open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Открывает файл и возвращает представляющий его объект.
file : Строка или байтовая строка, представляющая путь (абсолютный, либо относительный для текущей рабочей директории) к файлу, который требуется открыть. Либо целое, являющееся дескриптором файла (он будет закрыт при закрытии возвращаемого объекта ввода/вывода, при условии, что closefd установлен в True).
mode=r : Строка, обозначающая режим, в котором следует открыть файл.
buffering=-1 : Целое. Политика буферизации. 0 — отключить буферизацию (только для двоичного режима); 1 — построчная буферизация (только для текстового режима); > 1 — размер буфера в байтах. Если не указана, используются политика буферизации по умолчанию (см. ниже).
encoding=None : Имя кодировки для кодирования/декодирования файла. Следует указывать только для текстовых файлов. Если не указана, используется системная кодировка: для определения вызывается locale.getpreferredencoding(False). При чтении и записи двоичных файлов указывать кодировку не следует. Список поддерживаемых кодировок можно найти в модуле codecs.
errors=None : Строка, обозначающая режим, в котором будут обрабатываться ошибки кодирования/декодирования. Следует использовать только для текстовых файлов. В модуле codecs предопределено несколько режимов, пользовательские могут быть зарегистрированы при помощи codecs.register_error().
newline=None : Строка, определяющая режим работы универсальных переводов строк. Следует использовать только для текстовых файлов. Варианты: None, пустая строка, \n, \r, и \r\n. None — при чтении потока будут использованы универсальные переводы строк (\n, \r и \r\n будут преобразованы в \n); при записи — \n преобразуются в разделитель, используемый в системе (os.linesep). Пустая строка — при чтении также используются универсальные переводы строк, однако символы не будут преобразованы в \n; при записи преобразование не происходит. Другие значения — при чтении разбивка на строки осуществляется при помощи значения, преобразование не производится; при записи \n преобразуются в указанное значение.
closefd=True : Флаг необходимости закрытия файлового дескриптора. Используется только, если в file указан дескриптор, иначе возбуждается исключение. Если False, то дескриптор будет оставлен открытым даже после закрытия файла.
opener=None : Пользовательский объект, поддерживающий вызов, который следует использовать для открытия файла. Этот объект получая на входе file и flags, должен возвращать открытый дескриптор файла (возврат os.open и None при этом функционально идентичны). Описание объектов типа file можно найти в одноимённом разделе — file.
Если файл не может быть открыт, возбуждается исключение OSError.
ord(chr)
Возвращает числовое представление для указанного символа.
chr : Символ, который следует представить в виде целого.
pow(x, y[, z])
Возвращает результат возведения числа в степень, с опциональным делением по модулю.
x : Число, которое требуется возвести в степень.
y : Число, являющееся степенью, в которую нужно возвести первый аргумент. Если число отрицательное, аргумент z не принимается.
z : Число, на которое требуется произвести деление по модулю. Если число указано, ожидается, что x и y положительны и имеют тип int.
Ожидаются аргументы численных типов.
Если переданы операнды разных типов, приведение производится по правилам двоичной арифметики.
Случай использования только первых двух аргументов pow(x, y) эквивалентен использованию оператора возведения в степень: x ** y. Нотация с тремя аргументами используется для возведения в степень по модулю.
property(fget=None, fset=None, fdel=None, doc=None)
print(*objs, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
Выводит заданные объекты на экран или отправляет их текстовым потоком в файл.
objs : Объекты, которые требуется отправить в файл.
sep=»» : Строка, которой следует разделить объекты. None — использовать значение по умолчанию. Ожидается, что аргумент будет передан по имени.
end=\n** : Строка, которой следует поставить после всех объектов. None — использовать значение по умолчанию. Ожидается, что аргумент будет передан по имени.
file=sys.stdout : Ожидается объект, реализующий метод wrtite(string). Если значение не указано, либо None будет использован sys.stdout. Ожидается, что аргумент будет передан по имени.
flush= False : Если True поток будет сброшен в файл принудительно. Обычно же необходимость буферизации определяется типом файла.
Объекты будут преобразованы в строку по тем же правилам, по которым работает str()
Если объекты не указаны, запишет значение из параметра end.
range(start, stop[, step])
Арифметическая прогрессия от start до stop с шагом step.
repr(obj)
Возвращает формальное строковое представление указанного объекта.
obj : Объект для которого требуется получить формальное строковое представление. Для многих типов функция возвращает строку, которая при передаче в eval() может произвести объект с тем же значением, что и исходный.
В других случаях представление является строкой, обрамлённой угловыми скобками ( ), содержащей название типа и некую дополнительную информацию, часто — название объекта и его адрес в памяти.
reversed(seq)
round(number[, ndigits])
Возвращает число с плавающей запятой, округлённое до указанного количества цифр после запятой.
number : Число, которое требуется округлить.
ndigits : Количество знаков после запятой. Если не указано, то равно 0.
Для встроенных типов, поддерживающих функцию, значения округляются до ближайшего кратного 10 в степени минус ndigits; если два кратных одинаково близки, округление производится в сторону чётного. Так, например, и round(0.5) и round(-0.5) равны 0, но round(1.5) равно 2.
set(object, name, value)
setattr(obj, name, value)
Добавляет объекту указанный атрибут.
obj : object Объект, который следует дополнить атрибутом.
name : str Строка с именем атрибута. Можно указывать как имя нового, так и существующего атрибута.
value : Произвольное значение атрибута.
Атрибут объекта (свойство, метод, элемент) будет добавлен в случае, если объект разрешает/поддерживает это действие.
Метод зачастую используется в случаях, когда имя атрибута и/или значение заранее неизвестно и содержится в переменной.
Для возвращения атрибута используется getattr().
Для удаления атрибута используется delattr().
Для проверки существования атрибута используется hasattr().
sorted(iterable[, key][, reverse])
Возвращает новый отсортированный список, составленный из элементов итерирующегося объекта.
iterable : Объект, поддерживающий итерирование, элементы которого требуется упорядочить.
cmp=None : Ожидается в форме именованного аргумента. Функция, принимающая аргументами два стоящих рядом элемента, которая должна вернуть отрицательное число (если первый меньше второго), нуль (если равны) и положительное (если первый больше второго). Например: cmp=lambda x,y: cmp(x.lower(), y.lower()). Использование сочетаний key + reverse намного быстрее эквивалентной cmp-функции из‑за того, что в первом случае обращение к каждому из элементов происходит единожды, а во втором по несколько раз.
key=None : Ожидается в форме именованного аргумента. Функция, принимающая аргументом элемент, используемая для получения из этого элемента значения для сравнения его с другими. None — сравнить элементы напрямую. Например: key=str.lower.
reverse=False : Ожидается в форме именованного аргумента. Флаг, указывающий следует ли производить сортировку в обратном порядке.
Сортировка при помощи данной функции является стабильной — гарантирует неизменность расположения равных между собой элементов. Такое поведение полезно при сортировке в несколько проходов (например, сортировка по отделу и уровню заработной платы).
str(object=»)
Строковое представление объекта.
staticmethod(function)
Представляет указанную функцию статичным методом.
function : Функция, которую следует представить статичным методом.
Может использоваться к качестве декоратора.
В статичные методы, в отличие, скажем, от обычных или от classmethod(), не передаётся первый аргумент неявным образом. Статичные методы в Питоне похожи на аналогичные в C++ или Java.
Для объявления статичного метода используйте staticmethod в качестве декоратора:
Вызывается как через класс — C.f() —, так и через экземпляр — C().f(), при этом данные экземпляра игнорируются, а принимаются во внимание только данные его класса.
sum(iterable[, start])
Суммирует элементы указанного объекта и возвращает результат.
iterable : Объект, поддерживающий итерацию по его элементам. Ожидается, что элементы этого объекта являются числами, но не строками. Если объект пуст, функция вернёт начальное значение (start).
start=0 : Число, с которого следует начать суммирование.
super([type[, object-or-type]])
Возвращает объект-посредник (прокси), делегирующий вызовы методов родителю или собрату класса указанного типа.
type : Тип, от которого следует начать поиск объекта-посредника. Ранее атрибут был обязателен.
obj-or-type : Если не указан, возвращается несвязанный объект-посредник. Если атрибут является объектом, то будет получен посредник для получения метода объекта, для которого isinstance(obj, type) возвращает True. Если атрибут является типом, то будет получен посредник для получения метод класса, для которого issubclass(subtype, type) возвращает True. Используется для доступа к базовым реализациям наследуемых методов, перекрытых в классе-наследнике.
Порядок поиска метода тот же, что и при getattr(), только type пропускается: тип имеет атрибут mro, в котором задаётся порядок поиска методов, используемый как getattr(), так и super(). Атрибут динамический и может изменяться по мере обновления иерархии наследования.
Типичные случаи использования super()
В иерархиях с единичным наследованием используется для обращения к родительским классам, чтобы явно не указывать их имена, это упрощает поддержку кода в дальнейшем. Данный тип использования имеет родственников в других языках программирования.
Второй вариант используется для поддержки совместного множественного наследования в динамическом окружении. Вариант уникален для Питона и отсутствует в языках статически компилируемых или поддерживающих только единичное наследование. Он делает возможным обращение с ромбовидными иерархиями (см. проблема ромба), при которых несколько базовых классов задают реализацию метода с одним и тем же именем. Правила хорошего проектирования требуют того, чтобы во всех случаях метод имел одну и ту же сигнатуру (в связи с тем, что порядок вызовов определяется во время исполнения, потому как он задаётся при изменении иерархии, и потому что в цепи могут присутствовать собратья, неизвестные до момента исполнения).
Без аргументов функция работает только внутри определения класса: необходимые для идентификации класса и доступа к методам его объекта детали заполняет компилятор.
tuple([iterable])
Преобразование к кортежу.
type(object)
Возвращает тип объекта.
vars([obj])
Возвращает словарь из атрибута dict указанного объекта.
obj : Объект, для которого следует вернуть словарь атрибутов (dict).
Возвращает словарь атрибутов (dict) указанного объекта — модуля, класса, экземпляра, и любого другого объекта, имеющего атрибут dict.
Внимание
Следует помнить, что атрибут dict модулей и экземпляров поддерживает изменение, однако другие объекты могут налагать запрет его модификацию (так, например, классы используют прокси для предотвращения прямой модификации этого словаря).
Если функция vars вызвана без аргументов, результат подобен вызову locals()
zip(*iterables)
Возвращает итератор по кортежам, где i-тый кортеж содержит i-тый элемент каждой из указанных последовательностей.
iterables : Итерируемые объекты, элементы которых следует упаковать в кортежи. Если передана одна последовательность, вернётся итератор по кортежам, состоящим из единственного элемента. Если последовательности не переданы, возвращается пустой итератор.
Итератор останавливается, когда исчерпана кратчайшая из последовательностей.
Гарантируется вычисление слева направо, что делает возможным следующую идиому кластеризации данных по группам n-длины — zip(*[iter(s)] * n):
В сочетании с оператором * функция может быть использована для распаковки списка: