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

Собрав строку с именем пользователя, мы выводим информацию о пользователе, ограничивая ширину каждого столбца (имя сотрудника, идентификатор и имя пользователя) желаемыми значениями. Полный программный код программы (который несколько отличается от того, что мы только что рассмотрели, несколькими начальными строками с комментариями и инструкциями импорта) находится в файле generate_usernames.py. Структура программы - чтение данных из файла, обработка каждой записи, вывод результата - одна из наиболее часто встречающихся, и она повторяется в следующем примере.

statistics.ру: Предположим, что у нас имеется пакет файлов с данными, содержащих числовые результаты некоторой обработки, выполненной нами, и нам необходимо вычислить некоторые основные статистические характеристики, которые дадут нам возможность составить общую картину о полученных данных. В каждом файле находится обычный текст (в кодировке ASCII), с одним или более числами в каждой строке (разделенными пробельными символами). Здесь видно, что было прочитано 183 числа, из которых наиболее часто встречаются числа 5, 7 и 50, и со стандартным отклонением по выборке 235.01. Все числа из всех файлов сохраняются в списке numbers.

Для нахождения модальных ("наиболее часто встречающихся") значений нам необходимо знать, сколько раз встречается каждое число, поэтому мы создаем словарь со значениями по умолчанию, используя функцию int в качестве фабричной функции, где будут накапливаться счетчики. Затем выполняется обход списка файлов и производится чтение данных из них. В качестве дополнительных аргументов мы передаем функции read_data список и словарь со значениями по умолчанию, чтобы она могла обновлять их.

После чтения всех данных мы исходим из предположения, что некоторые числа были благополучно прочитаны, и вызываем функцию calculate_statistics . Она возвращает именованный кортеж типа Statistics, который затем используется для вывода результатов. Каждая строка разбивается по пробельным символам, после чего производится попытка преобразовать каждый элемент в число типа float. Если преобразование удалось, следовательно, это либо целое число, либо число с плавающей точкой в десятичной или в экспоненциальной форме.

Полученное число добавляется в список numbers и выполняется обновление словаря frequencies со значениями по умолчанию. (Если бы здесь использовался обычный словарь diet, программный код, выполняющий обновление словаря, мог бы выглядеть так: frequenci-es[number] = frequencies. get(number, 0) + 1.) Если преобразование потерпело неудачу, выводится номер строки (счет строк в текстовых файлах по традиции начинается с 1), текст, который программа пыталась преобразовать в число, и сообщение об ошибке, соответствующее исключению ValueError. Эта функция используется для сбора всех статистических характеристик воедино. Поскольку среднее значение вычисляется очень просто, мы делаем это прямо здесь.
Навигация: 1 2 3
 
 
© Copyright