Η λειτουργία ύπνου Python - Πώς να κάνετε την Python να περιμένει λίγα δευτερόλεπτα πριν συνεχίσετε, με παραδείγματα εντολών

Μπορείτε να χρησιμοποιήσετε τη sleep()λειτουργία Python για να προσθέσετε μια χρονική καθυστέρηση στον κώδικά σας.

Αυτή η λειτουργία είναι πρακτική αν θέλετε να θέσετε σε παύση τον κωδικό σας μεταξύ των κλήσεων API, για παράδειγμα. Ή βελτιώστε την εμπειρία του χρήστη προσθέτοντας παύσεις μεταξύ λέξεων ή γραφικών.

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

Όταν εκτελώ τον παραπάνω κώδικα, υπάρχει καθυστέρηση δύο δευτερολέπτων πριν από την εκτύπωση του "γειά σου κόσμου".

Αντιμετωπίζω καθυστέρηση επειδή sleep()σταματά την «εκτέλεση του νήματος κλήσης» για έναν παρεχόμενο αριθμό δευτερολέπτων (αν και ο ακριβής χρόνος είναι κατά προσέγγιση). Έτσι, η εκτέλεση του προγράμματος διακόπτεται για περίπου δύο δευτερόλεπτα στο παραπάνω παράδειγμα.

Σε αυτό το άρθρο, θα μάθετε πώς να θέσετε τον κωδικό Python σε αναστολή λειτουργίας.

Οι λεπτομέρειες του ύπνου

Η ενότητα ώρας της Python περιέχει πολλές συναφείς με το χρόνο συναρτήσεις, μία από τις οποίες είναι 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) 

Εδώ, εισάγω ολόκληρη τη λειτουργική μονάδα ώστε να έχω πρόσβαση σε πολλές λειτουργίες από αυτήν, συμπεριλαμβανομένης της αναστολής ().

import time 

Στη συνέχεια, δημιουργώ έναν βρόχο για επαναλήψεις πέντε φορές.

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. Για να προσθέσω αγωνία, χρησιμοποιώ τη λειτουργία αναστολής () για να καθυστερήσω περίπου ένα δευτερόλεπτο μετά την εκτύπωση κάθε λέξης.

time.sleep(1) 

Αν και η ταχύτητα εκτέλεσης είναι συχνά στο προσκήνιο του μυαλού μας, μερικές φορές αξίζει να επιβραδυνθεί και να προστεθεί μια παύση στον κώδικα μας. Όταν προκύπτουν αυτές οι περιπτώσεις, ξέρετε τι πρέπει να προσεγγίσετε και πώς λειτουργεί.

Γράφω για την εκμάθηση του προγράμματος και τους καλύτερους τρόπους για να το κάνω στο amymhaddad.com. Έχω tweet για προγραμματισμό, μάθηση και παραγωγικότητα: @amymhaddad.