Python Sleep-funktion - Sådan får du Python til at vente et par sekunder, før du fortsætter, med eksempler på kommandoer

Du kan bruge Pythons sleep()funktion til at tilføje en forsinkelse til din kode.

Denne funktion er praktisk, hvis du f.eks. Vil stoppe din kode mellem API-opkald. Eller forbedre brugerens oplevelse ved at tilføje pauser mellem ord eller grafik.

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

Når jeg kører ovenstående kode, er der ca. to sekunders forsinkelse, før "hej verden" udskrives.

Jeg oplever en forsinkelse, fordi sleep()stopper "udførelsen af ​​den opkaldende tråd" i et givet antal sekunder (selvom det nøjagtige tidspunkt er omtrentligt). Så udførelsen af ​​programmet er pause i cirka to sekunder i ovenstående eksempel.

I denne artikel lærer du, hvordan du sætter din Python-kode i dvale.

Detaljerne om søvn

Pythons tidsmodul indeholder mange tidsrelaterede funktioner, hvoraf den ene er sleep(). For at bruge sleep () skal du importere den.

from time import sleep 

sleep () tager et argument: sekunder. Dette er den tid (i sekunder), du vil forsinke din kode.

seconds = 2 sleep(seconds) 

Sov i aktion

Lad os nu bruge sleep()på et par forskellige måder.

Når jeg har importeret søvn fra timemodulet, udskrives der to tekstlinjer. Der vil dog være cirka to sekunders forsinkelse mellem udskrivningen af ​​hver linje.  

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

Dette er, hvad der skete, da jeg kørte koden:

"Hello"Denne linje blev udskrevet med det samme.

Derefter var der cirka to sekunders forsinkelse.

"World" Denne linje blev trykt ca. to sekunder efter den første.

Du kan være præcis

Gør din tidsforsinkelse specifik ved at sende et flydende nummer til sleep().

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

Dette er, hvad der skete, da jeg kørte koden:

"Prints immediately." Denne linje udskrives med det samme.

Derefter var der en forsinkelse på ca. 0,5 sekunder.

"Prints after a slight delay." Denne linje blev udskrevet ca. 0,5 sekunder efter den første.

Opret et tidsstempel

Her er et andet eksempel at overveje.

I nedenstående kode opretter jeg fem tidsstempler. Jeg bruger sleep()til at tilføje en forsinkelse på cirka et sekund mellem hver tidsstempel.

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

Her importerer jeg hele tidsmodulet, så jeg kan få adgang til flere funktioner fra det, inklusive sleep ().

import time 

Derefter opretter jeg en for-loop, der gentages fem gange.

for i in range(5): ... 

På hver iteration får jeg den aktuelle tid.

current_time = time.localtime() 

Jeg får et tidsstempel ved hjælp af en anden funktion i tidsmodulet strftime().

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

Sleep () -funktionen er næste, hvilket vil medføre en forsinkelse for hver iteration af sløjfen.

time.sleep(1) 

Når jeg kører programmet, venter jeg omkring et sekund, før det første tidsstempel udskrives. Derefter venter jeg omkring et sekund på, at den næste tidsstempel udskrives og så videre, indtil sløjfen slutter.

Outputtet ser sådan ud:

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

sleep () og brugeroplevelsen

En anden måde at bruge sleep()er at forbedre brugerens oplevelse ved at skabe spænding.

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

Her gentager jeg listen over ord i story_intro. For at tilføje spænding bruger jeg sleep () -funktionen til at forsinke ca. et sekund efter hvert ord er udskrevet.

time.sleep(1) 

Selvom udførelseshastighed ofte er i spidsen for vores sind, er det nogle gange værd at bremse ned og tilføje en pause i vores kode. Når disse lejligheder opstår, ved du hvad du skal nå ud til, og hvordan det fungerer.

Jeg skriver om at lære at programmere og de bedste måder at gøre det på amymhaddad.com. Jeg kvidrer om programmering, læring og produktivitet: @amymhaddad.