Генераторы словарей и модули Рython
Функции в языке Python Функции в языке PythonВсе функции в языке Python возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений,...
Реализация генераторов Реализация генераторовМы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания...
Парсинг документов XML Парсинг документов XMLXML: Для парсинга документов XML широко используются два основных подхода. Один из них основан на анализе DOM (Document Object Model -объектная модель документа), а другой - на использовании SAX (Simple API for XML - упрощенный...
Копирование коллекций Копирование коллекцийКопирование коллекций: Поскольку в языке Python повсюду используются ссылки на объекты, когда выполняется оператор присваивания (=), никакого копирования данных на самом деле не происходит. Если справа от оператора находится литерал,...
Словари со значениями по умолчанию
Функция open возвращает объект файла, открытого в текстовом режиме, в котором этот объект может использоваться как итератор, возвращая по одной строке из файла в каждой итерации. Передав итератор функции enumerateO, мы получаем итератор-перечисление, который в каждой итерации возвращает номер итерации (в переменной lino, "line number" - "номер строки") и строку из файла.

Если слово, указанное пользователем, присутствует в строке, программа выводит имя файла, номер строки и первые 40 символов этой строки, из которой удаляются завершающие пробельные символы (такие как \п). Функция enumerateO принимает необязательный именованный аргумент start, который по умолчанию имеет значение 0. Мы передаем в этом аргументе значение 1, так как, в соответствии с общепринятыми соглашениями, нумерация строк в текстовых файлах начинается с 1. Как правило, на практике используется не итератор-перечисление, а итератор, возвращающий последовательные целые числа. Это именно то, что делает функция range.

Благодаря тому, что существует возможность распаковывать итерируемые объекты с помощью оператора , мы можем распаковать итератор, возвращаемый функцией range. Во всех трех случаях функции передается четыре аргумента. Во втором случае распаковывается кортеж из четырех элементов, а в третьем - распаковывается итератор, возвращаемый функцией range. Теперь рассмотрим небольшую, но законченную программу, которая соединяет в себе все, что мы узнали к настоящему моменту, и впервые явно использует функцию записи в файл.

В программе используется функция random. choice , которая извлекает случайный элемент из последовательности, поэтому вполне возможно, что в окончательном списке одно и то же имя может появиться несколько раз. Во внешнем цикле for ... in выполняется обход двухэлементных кортежей, каждый из которых распаковывается в две переменные. Хотя списки могут быть чрезвычайно длинными, возврат их из функции выполняется очень эффективно, так как в языке Python используются ссылки на объекты, поэтому фактически функция возвращает всего лишь две ссылки на объекты.
Навигация: 1 2 3 4
 
 
© Copyright