Syntax
Följande exempel visar den enkla användningen av sleep () -funktionen för att stoppa programkörningen mitt i skriptet under en viss period. Skriptet läser och skriver ut det aktuella systemets tidsvärde, väntar i 5 sekunder under sleep () -funktionen och läser igen och skriver ut den aktuella systemtiden. Här används funktionerna localtime () och time () för att läsa det aktuella systemdatum och -tid, och funktionen strftime () används för att skriva ut den formaterade tiden.
#!/ usr / bin / env python3# Importera tidsmodul
importtid
# Läs aktuellt datum och tid
nu = tid.lokal tid (tid.tid())
# Starttid för utskrift
skriva ut (tid.strftime ("Starttiden:% H:% M:% S", nu))
# Vänta i 5 sekunder
skriva ut ("Väntar i 5 sekunder ...")
tid.sova (5)
# Läs aktuellt datum och tid
nu = tid.lokal tid (tid.tid())
# Skriv ut sluttid
skriva ut (tid.strftime ("Sluttiden:% H:% M:% S", nu))
Produktion
Följande utdata visas efter att ovanstående skript har körts. Utgången visar att varaktigheten mellan starttiden och sluttiden är 5 sekunder, med funktionen sleep ().
Exempel 2: Skapa en tidsräknare med sömn ()
Följande exempel visar hur man enkelt skapar en tidsräknare via sleep () -metoden. Skriptet tar ett antal i sekunder för att initiera tidsräknarvariabeln. Här importeras tre moduler. De datum Tid modulen importeras för att ställa in det initiala tidsvärdet. De tid modulen importeras för att använda sleep () -funktionen. De sys modulen används för att avsluta det oändliga medan slingan när räknarvärdet är lika med tidsräknarvärdet. Fyra variabler används i skriptet för att initialisera variablerna timme, minut, sekund och räknare för att ställa in tid för räknaren. Här väntar sleep () -funktionen i en sekund i varje iteration av slingan och skriver sedan ut tidräknarvärdet.
#!/ usr / bin / env python3# Importera datetime-modul
importera datatid
# Importera tidsmodul
importtid
# Importera sys-modul
importera sys
# Ta antalet sekunder att räkna
timer = int (input ("Ställ in räknarvärdet i sekunder:"))
# Initiera tid och räknarvärde till 0
timme = minut = sekund = räknare = 0
# Skriv ut starttimervärdet
skriv ut (datetime.tid (timme, minut, sekund))
Prova:
# Definiera oändlig slinga
medan det är sant:
# Fördröj i 1 sekund
tid.sova (1)
# Ökningsräknare med 1
räknare = räknare + 1
# Öka sekunden med 1
sekund = sekund + 1
# Skriv ut det aktuella timervärdet
skriv ut (datetime.tid (timme, minut, sekund))
# Ställ in det andra värdet till 0 när värdet är mer än 60
om andra> 60:
minut = minut + 1
sekund = 0
# Ställ in minutvärdet till 0 när värdet är mer än 60
om minut> 60:
timme = timme + 1
minut = 0
# Avsluta slingan när räknarvärdet är lika med timervärdet
if counter == timer:
skriva ut ("Tid avslutad.")
ha sönder
utom KeyboardInterrupt:
# Avsluta skriptet när du trycker på Ctrl + C
sys.utgång
Produktion
Följande utdata visas efter körning av skriptet.
Exempel 3: Skriv ut varje karaktär av en sträng med en fördröjning
Om du vill visa varje tecken i en text med viss fördröjning i utdata, kan du använda sleep () -funktionen i skriptet. En liknande uppgift visas i följande skript. Här tas ett textvärde som inmatning. Varje tecken i texten upprepas med slingan och funktionen väntar på 0.4 sekunder före utskrift.
#!/ usr / bin / env python3# importtidsmodul
importtid
# Ta ett strängvärde
name = input ("Ange ditt namn:")
# Iterera slingan för att läsa varje tecken från strängen
för val i namn:
# Skriv ut varje tecken utan ny linje
skriva ut (val, end = ")
# Vänta på 0.4 sekunder efter utskrift av varje tecken
tid.sova (0.4)
Produktion
Kör manuset. Du förstår utmatningen ordentligt efter att man kört skriptet.
Exempel 4: Användning av sömn () i skript med flera trådar
Följande exempel visar användningen av sleep () -funktionen i Python-skriptet med flera trådar. Här importeras två moduler: tidsmodulen för att använda sleep () -funktionen och threading-modulen för att skapa flera trådar. Två anpassade funktioner används i skriptet. Ett textmeddelande skrivs ut och väntar på 0.5 sekunder tre gånger inuti for-slingan när den första tråden startar. Ett textmeddelande skrivs ut och väntar på 1 sekund fyra gånger inuti for-slingan när den andra tråden startar.
#!/ usr / bin / env python3# importtidsmodul
importtid
# Importera trådmodul
importera trådning
# Definiera den första trådfunktionen
def prn_message_1 ():
för n inom intervallet (3):
skriv ut ("Skriv ut tråd 1-meddelande")
tid.sova (0.5)
# Definiera den andra trådfunktionen
def prn_message_2 ():
för n i intervall (4):
skriva ut ("Skriv ut tråd 2-meddelande")
tid.sova (1)
# Ställ in den första trådfunktionen
tråd1 = trådning.Tråd (target = prn_message_1)
# Starta den första trådfunktionen
tråd1.Start()
# Ställ in den andra trådfunktionen
tråd2 = trådning.Tråd (mål = prn_message_2)
# Starta den andra trådfunktionen
tråd2.Start()
Produktion
Följande utdata visas efter körning av skriptet. Efter att ha startat den första tråden börjar den andra tråden och väntar tills den är klar i 1 sekund. Under den här tiden har den första trådens slinga slutförts de två sista iterationerna. De sista tre utgångarna har dykt upp för den andra trådens slinga.
Slutsats
Sleep () -funktionen används för att lösa många olika typer av tidsrelaterade problem i Python. Olika användningar av denna metod förklaras med hjälp av mycket enkla exempel här för att hjälpa läsaren att känna till funktionerna i detta verktyg. Jag tror att du eller någon annan Python-användare kommer att kunna använda den här metoden ordentligt efter att ha övat på exemplen i denna handledning.