Syntaks
Følgende eksempel viser den enkle brug af sleep () -funktionen til at standse programudførelsen midt i scriptet i en bestemt periode. Scriptet læser og udskriver den aktuelle systemtidsværdi, venter i 5 sekunder under sleep () -funktionen og læser igen og udskriver den aktuelle systemtid. Her bruges funktionerne localtime () og time () til at læse den aktuelle systemdato og -tid, og strftime () -funktionen bruges til at udskrive den formaterede tid.
#!/ usr / bin / env python3# Importer tidsmodul
importtid
# Læs den aktuelle dato og tid
nu = tid.localtime (tid.tid())
# Udskriv starttidspunkt
udskriv (tid.strftime ("Starttiden:% H:% M:% S", nu))
# Vent i 5 sekunder
udskrive ("Venter i 5 sekunder ...")
tid.sove (5)
# Læs den aktuelle dato og tid
nu = tid.localtime (tid.tid())
# Udskriv sluttid
udskriv (tid.strftime ("Sluttiden:% H:% M:% S", nu))
Produktion
Følgende output vises efter kørsel af ovenstående script. Outputtet viser, at varigheden mellem starttid og sluttid er 5 sekunder ved hjælp af sleep () -funktionen.
Eksempel 2: Opret en tidstæller ved hjælp af sleep ()
Følgende eksempel viser, hvordan man nemt opretter en tidstæller via sleep () -metoden. Scriptet tager et antal sekunder at initialisere tidstællervariablen. Tre moduler importeres her. Det dato tid modulet importeres for at indstille den indledende tidsværdi. Det tid modulet importeres for at bruge funktionen sleep (). Det sys modulet bruges til at afslutte den uendelige while-loop, når tællerværdien er lig med tællertallet. Fire variabler bruges i scriptet til at initialisere time-, minut-, sekund- og tællervariabler for at indstille starttidspunktet for tidstælleren. Her venter sleep () -funktionen et sekund i hver iteration af sløjfen og udskriver derefter tidstællerværdien.
#!/ usr / bin / env python3# Importer datetime-modul
importer datatid
# Importer tidsmodul
importtid
# Importer sys-modul
importer sys
# Tag antallet af sekunder at tælle
timer = int (input ("Indstil tællerværdien i sekunder:"))
# Initialiser tid og tællerværdi til 0
time = minut = sekund = tæller = 0
# Udskriv starttimerværdien
udskriv (datetid.tid (time, minut, sekund))
prøve:
# Definer uendelig løkke
mens det er sandt:
# Forsink i 1 sekund
tid.sove (1)
# Forøg tæller med 1
tæller = tæller + 1
# Forøg sekund med 1
sekund = sekund + 1
# Udskriv den aktuelle timerværdi
udskriv (datetid.tid (time, minut, sekund))
# Indstil den anden værdi til 0, når værdien er mere end 60
hvis andet> 60:
minut = minut + 1
sekund = 0
# Indstil minutværdien til 0, når værdien er mere end 60
hvis minut> 60:
time = time + 1
minut = 0
# Afslut sløjfen, når tællerværdien er lig med timerværdien
hvis tæller == timer:
print ("Tid afsluttet.")
pause
undtagen KeyboardInterrupt:
# Afslut scriptet, når der trykkes på Ctrl + C
sys.Afslut
Produktion
Følgende output vises efter kørsel af scriptet.
Eksempel 3: Udskriv hver karakter af en streng med en forsinkelse
Hvis du vil vise hvert tegn i en tekst med en vis forsinkelse i output, kan du anvende sleep () -funktionen i scriptet. En lignende opgave vises i det følgende script. Her tages en tekstværdi som input. Hvert tegn i teksten gentages ved hjælp af sløjfen, og funktionen venter på 0.4 sekunder før udskrivning.
#!/ usr / bin / env python3# importtidsmodul
importtid
# Tag en strengværdi
name = input ("Indtast dit navn:")
# Iterer sløjfen for at læse hvert tegn fra strengen
for val i navn:
# Udskriv hvert tegn uden ny linje
print (val, end = ")
# Vent på 0.4 sekunder efter udskrivning af hvert tegn
tid.sove (0.4)
Produktion
Kør scriptet. Du vil forstå output korrekt efter at have kørt scriptet.
Eksempel 4: Brug af søvn () i multitrådet script
Følgende eksempel viser brugen af sleep () -funktionen i Python-scriptet med flere tråde. Her importeres to moduler: tidsmodulet til brug af sleep () -funktionen og threading-modulet til oprettelse af flere tråde. To brugerdefinerede funktioner bruges i scriptet. En tekstbesked udskrives og venter på 0.5 sekunder tre gange inde i for-løkken, når den første tråd starter. En tekstbesked udskrives og venter på 1 sekund i fire gange inde i for-løkken, når den anden tråd starter.
#!/ usr / bin / env python3# importtidsmodul
importtid
# Importer trådmodul
importer trådning
# Definer den første trådfunktion
def prn_message_1 ():
for n i rækkevidde (3):
print ("Udskriv tråd 1 besked")
tid.sove (0.5)
# Definer den anden trådfunktion
def prn_message_2 ():
for n i rækkevidde (4):
print ("Udskriv tråd 2-besked")
tid.sove (1)
# Indstil den første trådfunktion
tråd1 = trådning.Tråd (mål = prn_message_1)
# Start den første trådfunktion
tråd1.Start()
# Indstil den anden trådfunktion
tråd2 = trådning.Tråd (mål = prn_message_2)
# Start den anden trådfunktion
tråd2.Start()
Produktion
Følgende output vises efter kørsel af scriptet. Efter start af den første tråd begynder den anden tråd og venter, indtil den er færdig i 1 sekund. I løbet af denne tid er sløjfen af den første tråd afsluttet de sidste to iterationer. De sidste tre udgange er dukket op for loop af den anden tråd.
Konklusion
Sleep () -funktionen bruges til at løse mange forskellige typer tidsrelaterede problemer i Python. Forskellige anvendelser af denne metode forklares ved hjælp af meget enkle eksempler her for at hjælpe læseren med at kende funktionerne i dette værktøj. Jeg tror, at du eller enhver anden Python-bruger vil være i stand til at bruge denne metode ordentligt efter at have praktiseret eksemplerne inkluderet i denne vejledning.