Почти любая программа использует время. В Python для этого разработана отдельная библиотека – time , применяемая с целью выполнения самых различных действий с ним. Чтобы сделать его работу возможной, его надо сперва объявить в начале кода. Для этого используется такая строчка:
import time
Рассмотрим разные варианты, как правильно использовать этот модуль на практике.
Определение количества секунд со старта эпохи
Чтобы реализовать эту задачу, существует функция time (), которая не принимает ни одного параметра. Возвращаемое ею значение – сколько секунд прошло с 1 января 1970 года. В Python это время называется началом эпохи. По крайней мере, в операционных системах семейства Unix.
Что касается Windows, то дата такая же самая, но могут быть проблемы с отрицательными значениями, которые были до этого числа.
Используемый часовой пояс – UTC.
import time
seconds = time.time()
print(«Секунды с начала эпохи =», seconds)
Сложность этой функции в том, что она не отображает именно дату, а лишь количество секунд. Чтобы преобразовать в привычный всем формат, нужно использовать точные сведения. Для этого используется функция time.ctime().
Простой способ замерить скорость работы кода в python
Возвращение даты, времени в привычном формате
Для возвращения времени в привычном формате, существует метод time.ctime(). В скобках указывается переменная или число, обозначающее количество секунд, которые прошли со старта эпохи. Этот метод возвращает все характеристики даты и времени, включая дату, год, количество часов, минут, секунд, а также день недели.
Также эту функцию можно использовать без аргументов. В этом случае она возвращает текущую дату, время и так далее.
Вот фрагмент кода, который это демонстрирует.
import time
print(time.ctime())
Tue Oct 23 10:18:23 2018
Последняя строчка – это то, что выводится в консоль, где запущен интерпретатор Python. Метод автоматически форматирует полученное количество секунд в привычный для пользователя вид. Правда, редко используются все элементы, описанные выше. Как правило, нужно получить или только времени, или исключительно сегодняшнее число. Для этого используется отдельная функция – strftime().
Но перед тем, как мы ее рассмотрим, необходимо разобрать класс time.struct_time.
Класс time.struct_time
Это категория аргументов, которая может приниматься целым спектром методов. Она не имеет никаких параметров. Он являет собой кортеж с именованным интерфейсом. Проще говоря, доступ к элементам этого класса можно получить как по имени, так и по номеру индекса.
Он состоит из следующих атрибутов.
Внимание! В отличие от ряда других языков программирования, здесь месяц может колебаться в диапазоне от 1 до 12, а не от нуля до 11.
Возвращение конкретного формата
С помощью функции strftime() можно получить год, месяц, день, час, минуты, секунды по отдельности и вернуть их в текстовую строку. Дальше она может быть напечатана пользователю с помощью функции print() или как-то иным образом обработана.
Расчёт времени выполнения программы на python #short
В качестве аргумента функция может принимать любую переменную, принимающую значение, возвращенное другими функциями этого модуля. Например, ей можно передать передать местное время (о нем пойдет дальше), из которого она вытащит нужные данные.
Вот фрагмент кода, где мы это делаем.
import time
named_tuple = time.localtime() # получить struct_time
time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», named_tuple)
print(time_string)
Если запустить этот код, будет выведена текущая дата и время. Формат и последовательность элементов можно изменять. Они бывают следующими:
- %Y – год.
- %m – месяц.
- %d – день.
- %H – час.
- %M – минута.
- %S – секунда.
Соответственно, можно сделать так, чтобы вывод был исключительно месяца и дня. Для этого просто не надо давать команду выводить год. То есть, записать в приведенной выше формуле в качестве аргумента %m/%d, и все. Или же наоборот, %d/%m.
На самом деле, количество строковых литералов значительно больше. Приведем таблицу, где они детально описаны.
Отложить поток на определенное количество секунд
Для этого используется функция sleep() . С течением времени связан довольно большой блок программерских задач. Иногда приходится откладывать следующий шаг на определенное время. Например, если требуется взаимодействовать с базой данных, обработка которых занимает определенное время.
В качестве аргумента метод использует значение, выражающее, на какое количество секунд требуется отложить последующий шаг из алгоритма.
Например, в этом фрагменте задержка составляет 10 сек.
import time
print(«Program started…»)
time.sleep(pause)
print(str(pause) + » seconds passed.»)
В результате мы получим такое:
Program started…
10 seconds passed.
Как мы видим по выводу, сначала программа отчитывается о том, что она стартовала. А по прошествии десяти секунд написала, что это время прошло.
Функция позволяет указать длительность паузы в миллисекундах. Для этого используем дробные значения аргумента функции sleep. Например, 0,1. Это означает, что задержка составит 100 миллисекунд.
Получить локальное время
С помощью функции localtime() программа получает число секунд со старта эпохи в определенном часовом поясе.
Приведем пример кода для наглядности.
import time
result = time.localtime(1575721830)
print(«результат:», result)
print(«nгод:», result.tm_year)
print(«tm_hour:», result.tm_hour)
Возврат struct_time в UTC на основе количества секунд со старта эпохи
Эта задача достигается с помощью метода time.gmtime().. Нагляднее будет, если привести пример.
import time
result = time.gmtime(1575721830)
print(«результат:», result)
print(«nгод:», result.tm_year)
print(«tm_hour:», result.tm_hour)
Если включить эту последовательность действий, то будут выведена совокупность элементов, касающихся времени, год и часовой пояс.
Возврат количества секунд со старта эпохи с автоматической конвертацией в локальное время
Если стоит перед вами такая задача, она реализуется с помощью метода mktime() , который принимает struct_time . После этого она выполняет обратное действие функции localtime(). То есть, превращает время по локальному часовому поясу в число секунд, которые прошли со старта эпохи с поправкой на часовой пояс.
Функции mktime() и localtime() тесно переплетены между собой. Этот фрагмент кода наглядно демонстрирует это. Давайте рассмотрим его, чтобы более глубоко понимать, как это работает.
import time
seconds = 1575721830
# возвращает struct_time
t = time.localtime(seconds)
# возвращает секунды из struct_time
s = time.mktime(t)
print(«ns:», seconds)
Видим, что переменной seconds было присвоено 1575721830 секунд с начала эпохи. Сначала программа получает точную дату, время и другие параметры, основываясь на этом значении, поместила его в переменную t , после чего конвертирует ее содержимое в переменную s .
После этого отбивает новую строку и выводит количество секунд в консоль. Можете проверить: это будет то же самое число, что было присвоено переменной seconds.
Вывод даты из 9 чисел, которые относятся к struct_time
Предположим, у нас есть 9 чисел, которые обозначают год, месяц, число, день недели и ряд других значений, и нам необходимо их объединить в одну строку. Для этого используется функция asctime() . Она принимает или готовый struct_time, или любой другой кортеж из 9 значений, который обозначает то же самое. После этого возвращается строка, которая являет собой дату, время и ряд других параметров.
Очень удобно использовать этот метод для того, чтобы внести разрозненные данные, указанные пользователем, в единую переменную .
Например, это может быть программа, где пользователь указывает по отдельности число, месяц, год, день недели и другие данные, касающиеся регистрации на мероприятие. После этого полученные сведения заносятся в базу и потом выдаются уже другому человеку, который их запрашивает.
Получение времени и даты на основе строки Python
Предположим, пользователь указал разрозненные данные, и нам нужно их объединить в одну строку в том формате, который введен человеком, а потом сделать копию в другую переменную, и там перестроить в стандартный формат. Для этого используется функция time.strptime().
Она принимает переменную, в которой указано это значение, а возвращает уже знакомый нам struct_time .
Для наглядности напишем такую программу.
import time
time_string = «15 June, 2019»
result = time.strptime(time_string, «%d %B, %Y»)
print(result)
Угадайте, какой результат будет на выходе? Попробуйте предположить, не глядя на нижнюю строку. А потом сверьтесь с ответом.
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)
Одним словом, работать с датой и временем в Python вовсе несложно. Достаточно следовать этим инструкциям, и все будет получаться. С помощью библиотеки time пользователь получает огромное количество возможностей по работе со временем, таких как:
- Приостанавливать выполнение программы на определенное время.
- Показывать время, которое прошло с начала эпохи, в секундах. Эта информация может использоваться для суммирования времени или выполнения других математических операций с ним.
- Осуществлять конвертацию до удобного формата. Причем программист может сам задавать, какие элементы будут отображаться и в какой последовательности.
Есть также ряд других возможностей, но мы сегодня разобрали самые основные. Они пригодятся почти в любой программе, которая так или иначе работает со временем. Успехов.
Источник: office-guru.ru
Как Измерить Время Работы Кода На Основе Python
В этой статье в основном представлено, как на основе python измеряют время работы кода, в тексте представлены очень подробно через примерный код, для всех изучения или инструмента работы есть определенная референтная ценность обучения, нужные друзья могут ссылаться ниже.
Python Объединение имеет фразу: » python С собой с батареей » , не пишете время рамки. Python3.2 оснащен идеальным инструментом времени под названием timeit для измерения времени работы кода python.
Модуль timeit определяет класс Timer , который принимает два параметра.. Два параметра — это строки.. Первый параметр — это слово или функция, которую вы хотите рассчитать.. Второй параметр, переданный к Timer , является импортной фразой, которая создает среду для первого параметрового слова.. Внутри, timeit построит независимую виртуальную среду, вручную выполняет создание фразы, а затем вручную компилирует и выполняет расчетные фразы..
После того, как есть объект Timer , самое простое — звонить timeit ( ), он получает параметр для количества звонков, которые были вызваны в каждом тесте, по умолчанию, миллион раз.;Возвращение затраченных секунд..
Другой основный метод Timer объекта является repeat ( ), он принимает два варианта параметров.. Первый параметр — это количество повторений целого теста, а второй параметр — это количество раз, когда в каждом тесте называются расчетные слова.. Оба параметра являются опциональными, их стандартные значения составляют 3 и 1000000 соответственно.. repeat ( ) Метод возвращает список времени каждого тестового цикла, записанного в секунду. Python Имеет удобную функцию min , которая позволяет вернуть введенный список в минимальную стоимость, например,:
Вы можете использовать модуль timeit в командной строке для тестирования существующей программы Python без необходимости изменения кода..
Источник: ru.n4zc.com
Python: получить время выполнения
Напишите программу, чтобы получить время выполнения (в секундах) для метода Python.
Пример решения : —
Код Python:
import time def sum_of_n_numbers(n): start_time = time.time() s = 0 for i in range(1,n+1): s = s + i end_time = time.time() return s,end_time-start_time n = 5 print(«nTime to sum of 1 to «,n,» and required time to calculate is :»,sum_of_n_numbers(n))
Время для суммирования от 1 до 5 и необходимое время для расчета: (15, 2.384185791015625e-06)
Блок — схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Каков уровень сложности этого упражнения?
Источник: www.kodesource.top