Найти тему
CompuLife

Библиотека time

Всем привет! Сегодня я расскажу про библиотеку time в языке Python 3, а также мы научимся писать собственные часы.

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

>>> import time

Или такой:

>>> from time import *

В чём же разница между этими строчками? Про это мы поймём чуть позже.

Зачем нам нужна эта библиотека? Конечно же, чтобы работать с временем. Например, можно узнанть, сколько секунд прошло с Начала Времён - с первого января 1970-го года (большинство дат и времён в компьютерах так и хранится - такой формат называется Unix-time):

>>> time.time()
1578237045.2279458

Или

>>> time()
1578237045.2279458

Тут видна разница между двумя способами подключения: если вы написали import time, то перед каждой функцией библиотеки надо показать, что вы обращаетесь именно к этой библиотеке, а если from time import *, то название библиотеки можно не писать. Далее я буду писать, как будто я подключил первым способом.

Однако мы не привыкли думать о времени как о числе секунд с 1970-го года, поэтому давайте научимся получать время в более привычном формате. Функция

>>> time.ctime()
'Sun Jan 5 13:26:10 2020'

вернёт строку, в которой будет записано текущее время с днём недели, числом, месяцем и годом. Также этой функции можно передать число секунд, и тогда функция переведёт это Unix-время в формат, знакомый человеку.

Часто используемой является и функция sleep(n), которая прнимает число секунд (можно и нецелое) и приостанавливает работу програмы на столько n секунд.

>>> time.sleep(10)
[Через 10 секунд]
>>>

Теперь мы готовы написать свои собственные часы!

Для этого в цикле while каждую секунду будем писать текущее время:

>>> while True:
print(time.ctime())
time.sleep(1)

Ура, работает! Вот только каждый раз появляется новая строка. Давайте это исправим. Перед тем, как распечатать новое время, переместим место, куда мы сейчас будет печатать, в начало строки . Это делается с помощью вывода специального символа "\r" (Как и на печатной машинке, этот символ называется "возврат каретки") .

У нас получается вот такой вот код:

>>> while True:
print("\r", time.ctime(), sep="", end="")
time.sleep(1)
Работает!
Работает!

Спасибо за просмотр, ставьте лайки и подписывайтесь!