Функція сну Python - Як змусити Python зачекати кілька секунд, перш ніж продовжити, за допомогою прикладних команд

Ви можете використовувати sleep()функцію Python, щоб додати затримку часу до свого коду.

Ця функція зручна, якщо ви хочете, наприклад, призупинити свій код між викликами API. Або покращуйте взаємодію користувача, додаючи паузи між словами або графікою.

from time import sleep sleep(2) print("hello world") 

Коли я запускаю вищезазначений код, приблизно дві секунди затримується перед тим, як надрукувати "привіт світ".

У мене виникає затримка, оскільки sleep()зупиняє "виконання потоку, що викликає", протягом заданої кількості секунд (хоча точний час є приблизним). Отже, виконання програми призупиняється приблизно на дві секунди у наведеному вище прикладі.

У цій статті ви дізнаєтеся, як перевести ваш код Python у режим сну.

Подробиці сну

Часовий модуль Python містить багато функцій, пов'язаних з часом, одна з яких - sleep(). Для того, щоб використовувати sleep (), вам потрібно імпортувати його.

from time import sleep 

sleep () приймає один аргумент: секунди. Це кількість часу (у секундах), протягом якого ви хочете затримати свій код.

seconds = 2 sleep(seconds) 

Сон в дії

Тепер давайте використаємо sleep()кілька різних способів.

Після імпорту сплячого режиму з timeмодуля надрукуються два рядки тексту. Однак між друком кожного рядка буде затримка приблизно в дві секунди.  

from time import sleep print("Hello") sleep(2) print("World") 

Це сталося, коли я запустив код:

"Hello"Цей рядок надруковано відразу.

Потім була приблизно двосекундна затримка.

"World" Цей рядок надруковано приблизно через дві секунди після першого.

Ви можете бути точними

Вкажіть свою затримку за часом, передавши номер із плаваючою комою sleep().

from time import sleep print("Prints immediately.") sleep(0.50) print("Prints after a slight delay.") 

Це сталося, коли я запустив код:

"Prints immediately." Цей рядок надруковано негайно.

Потім була затримка приблизно 0,5 секунди.

"Prints after a slight delay." Цей рядок друкується приблизно через 0,5 секунди після першого.

Створіть позначку часу

Ось ще один приклад для розгляду.

У наведеному нижче коді я створюю п’ять позначок часу. Я використовую sleep()для додавання затримки приблизно на одну секунду між кожною міткою часу.

import time for i in range(5): current_time = time.localtime() timestamp = time.strftime("%I:%m:%S", current_time) time.sleep(1) print(timestamp) 

Тут я імпортую весь модуль часу, щоб мати доступ до декількох функцій з нього, включаючи sleep ().

import time 

Потім я створюю цикл for, який повторюватиметься п’ять разів.

for i in range(5): ... 

На кожній ітерації я отримую поточний час.

current_time = time.localtime() 

Я отримую тимчасову мітку , використовуючи іншу функцію в модулі часу strftime().

timestamp = time.strftime("%I:%m:%S", current_time) 

Наступною є функція sleep (), яка спричинить затримку на кожній ітерації циклу.

time.sleep(1) 

Коли я запускаю програму, я зачекаю приблизно секунду, перш ніж надрукується перша позначка часу. Потім я зачекаю приблизно секунду, щоб надрукувалась наступна мітка часу, і так далі, поки цикл не закінчиться.

Результат виглядає так:

04:08:37 04:08:38 04:08:39 04:08:40 04:08:41 

sleep () та взаємодія з користувачем

Іншим способом використання sleep()є покращення досвіду користувача шляхом створення певної напруги.

from time import sleep story_intro = ["It", "was", "a", "dark", "and", "stormy", "night", "..."] for word in story_intro: print(word) sleep(1) 

Тут я переглядаю список слів у story_intro. Щоб додати невизначеність, я використовую функцію sleep () для затримки приблизно на секунду після друку кожного слова.

time.sleep(1) 

Незважаючи на те, що швидкість виконання часто стоїть на першому плані у нашому розумі, іноді варто уповільнити і додати паузу в наш код. Коли виникають такі випадки, ви знаєте, до чого тягнутися і як це працює.

Я пишу про те, як навчитися програмувати, та про найкращі способи це зробити на amymhaddad.com. Я пишу твіт про програмування, навчання та продуктивність: @amymhaddad.