לעיתים אנו דורשים לבצע את התוכנית או את חלקי התוכנית לאחר זמן קצר. הופך את המשימה הזו ללא מאמץ פונקציית time.sleep () . טהמאמר שלו מכסה את הפונקציונליות של פונקציה זו יחד עם היישומים שלה.
לפני שנמשיך, בואו נסתכל במהירות על הנושאים המכוסים במאמר זה:
בוא נתחיל. :)
מדוע להשתמש ב- Python time.sleep ()?
לתפקוד השינה תפקיד חשוב מאוד במצב בו אנו רוצים לעצור את זרימת התוכנית ולתת להוצאות להורג אחרות. פונקציה זו מוגדרת בשתי הגרסאות של פיתון כלומר 2 ו -3.הוא שייך למודול הזמן של פייתון. זה בעצם מוסיף עיכוב לביצוע וזה רק יעצור את השרשור הנוכחי ולא את כל התוכנית.
מודול הזמן
הפונקציה Python time.sleep () קיימת במודול הזמן של Python. לפני שעושים שימוש בזה , יהיה עליך לייבא מודול זה באמצעות הפקודה:
זמן ייבוא
לאחר ייבוא מודול זה, תוכלו להשתמש בפונקציה time.sleep (). התחביר הוא כדלקמן:
תחביר:
זה לוקח פרמטר אחד שהוא שניות כפי שאתה יכול לראות. זה בעצם גורם לעיכוב של שניות רבות כל כך במהלך הביצוע. לַחֲזוֹר ערך לפונקציה זו הוא בָּטֵל .
בואו ניקח כעת כמה דוגמאות להבנת פעולתה של פונקציה זו.
Python time.sleep () דוגמאות:
שקול את הדוגמה הבאה המשרה עיכוב של שנייה אחת בין היציאות.
דוגמא:
מצא את האלמנט הגדול ביותר במערך Java
זמן ייבוא # ייבוא זמן מודול sleep_time = 1 # זמן להוסיף עיכוב לאחר הדפסת הצהרת ההדפסה הראשונה ('שלום') זמן. שינה (זמן שינה) # הדפסת זמן שינה ('אדוריקה!')
תְפוּקָה:
אם הקוד לעיל יבוצע הוא יוסיף עיכוב בתוכנית ובכך, ההצהרה הבאה תבוצע לאחר שנייה אחת / ים.לעיכוב מדויק, ניתן גם להעביר לפונקציה ערכי נקודה צפה. לדוגמא, אם עברו 0.1 שניות אז זה יעכב 100 מילישניות.
הנה דוגמה נוספת שתחזיר את זמן המערכת לפני ביצוע התוכנית ולאחריה.
דוגמא:
# זמן ייבוא הדגמת שינה # הדפסת זמן התחלה ('זמן ביצוע הקוד מתחיל הוא:', סוף = '') הדפסה (time.ctime ()) # זמן התוכנית מביאה. שינה (6) # הדפסת זמן סיום ('The זמן סיום ביצוע הקוד הוא: ', end =' ') הדפס (time.ctime ())
תְפוּקָה:
זמן תחילת ביצוע הקוד הוא: יום ראשון 23 ביוני 22:36:19 2019
זמן סיום ביצוע הקוד הוא: יום ראשון 23 ביוני 22:36:25 2019
התהליך החזיר 0 (0x0) זמן ביצוע: 6.089 שניות
לחץ על מקש כלשהו כדי להמשיך . . .
דוגמה לשינה:
להלן דוגמה לתפקוד שינה:
זמן ייבוא startTime = time.time () עבור i בטווח (5, 10): הדפס (i) # ביצוע עיכוב בפעם שנייה. Sleep (1) endTime = time.time () elapsedTime = endTime - הדפסה startTime (' זמן שחלף =% s% elapsedTime)
תְפוּקָה:
5
6
7
8
9
זמן שחלף = 5.006335258483887
התהליך החזיר 0 (0x0) זמן ביצוע: 5.147 שניות
הביצוע המלא לקח 5 שניות כאשר הביצוע הופסק למשך שנייה אחת בכל פעם. כמו כן, הזמן הנוסף הנדרש לביצוע הוא זמן ביצוע פעולות הרקע של המערכת עבור התוכניות.
זמן עיכוב שונה של שנת פיתון ()
ניתן להוסיף זמני עיכוב שונים בין ביצוע התוכנית ב- פִּיתוֹן תלוי בפלט הנדרש.הקוד הבא מדגים כיצד ניתן לעשות זאת:
דוגמא:
זמן ייבוא ל- i ב- [1, 0.1, 2, 0.3]: הדפס ('אני ישן למשך% s'% i, סוף = '') זמן הדפסה ('שניות'). שינה (i)
תְפוּקָה:
אני אשן שניות
אני ישן 0.1 שניות
אני ישן 2 שניות
אני ישן 0.3 שניות
התהליך החזיר 0 (0x0) זמן ביצוע: 3.538 שניות
הדפסה עצלה:
אם אתה רוצה להדפיס משהו בצורה מהודרת אתה יכול לעשות זאת באמצעות פונקציית השינה () כמפורט להלן:
# הודעת זמן ייבוא מודול זמן ייבוא = 'איזו הדפסת תווים מהודרת!' עבור i בהודעה: הדפס (i) זמן. שינה (0.3)
אם תבצע את הקוד שלעיל תראה עיכוב בהדפסת כל תו שייראה מהודר.
חוט פייתון שינה
בסביבה מרובת הליכי שינה () מתגלה כחשובה מאוד מכיוון שבמהלך הביצוע היא יכולה להוסיף עיכוב בשרשור הנוכחי שמתבצע.
דוגמא:
זמן ייבוא מהשרשור ייבוא מחזור הברגה ראנר (חוט): def run (עצמי): עבור x בטווח (0, 7): הדפס (x) time.sleep (2) class עיכוב (thread): def run (עצמי): עבור x בטווח (106, 109): הדפס (x) זמן. שינה (7) הדפס ('חוט רץ בוהה') רץ (). התחל () הדפס ('התחלת חוט עיכוב') עיכוב (). התחלה () הדפס ('בוצע')
להלן הפלט של דוגמת ההשחלה לעיל:
תְפוּקָה:
אם אתה מבצע את התוכנית, תוכל להבחין כי התוכנית כולה לא נעצרת, אך רק השרשור שהוצג כעת, המשך ונסה זאת.
יישום :
ישנם יישומים רבים של שיטה זו, למשל, אנו יכולים להשתמש בה כדי ליצור ממשק משתמש נחמד אשר מדפיס תפריט או את הכותרת בצורה מהודרת כלשהי, אולם אחד היישומים החשובים הוא לעצור תהליך רקע שיש לבצע באיזשהו מרווח.
דוגמה ליישום:
מחרוזת זמן ייבוא = 'אדוריקה!' print_string = '' עבור i בטווח (0, len (מחרוזת)): print_string = print_string + מחרוזת [i] הדפסת (print_string) זמן. שינה (2)
תְפוּקָה:
IS
אד
הַצלָחָה
אדור
אדור
אדורק
אדוריקה
אדוריקה!
כפי שראינו כי פונקציית השינה מושהית את התוכנית למשך זמן מסוים בו מודול הזמן של פייתון יועיל. בואו נראה קצת כיצד נוכל לקבל קלט מהמשתמש ולהשתמש באותה פונקציה באופן דינמי.
דוגמא לשינה דינמית
הנה דוגמה לשינה שלוקחת קלט מהמשתמש להוסיף עיכוב בין שתי פונקציות הדפסה ומדפיסה את הזמן שנדרש לביצוע פונקציית ההדפסה, הדוגמה הבאה מבוססת על Python 3.x.
ייבוא זמן שינה (): בעוד True: num = קלט ('הזן זמן המתנה:') נסה: num = float (num) למעט ValueError: הדפס ('מספר בלבד.n') המשך # הפעל את הזמן שלנו. פקודה, # והראה את ההדפסה לפני ואחרי ('לפני:% s'% time.ctime ()) זמן. sleep (num) הדפסה ('After:% sn'% time.ctime ()) נסה: sleeper ( ) למעט KeyboardInterrupt: הדפס ('nnException יציאה.') יציאה ()
תְפוּקָה:
הזן זמן המתנה: 1
לפני: ראשון 23 ביוני 22:44:13 2019
אחרי: יום ראשון 23 ביוני 22:44:14 2019
הזן זמן המתנה: 3
לפני: ראשון 23 ביוני 22:44:16 2019
אחרי: יום ראשון 23 ביוני 22:44:19 2019
דיוק
אם ברצונך לעצור את הביצוע לפרק זמן קטן יותר יש מגבלות לפונקציה זו בהתאם למערכת ההפעלה מכיוון שפונקציה זו משתמשת בפונקציית שינה (), מערכת ההפעלה, בלינוקס זמן ההמתנה יכול להיות קטן מזה בהשוואה לחלונות.
סיכום
במאמר לעיל סיקרנו את שיטת sleep () בפייתון אשר משמשת בעצם להוספת עיכוב בביצוע התוכנית, חבילה זו נמצאת במודול הזמן בפייתון אשר בעצם משתמש בפונקציה sleep () של מערכת ההפעלה הבסיסית. כמו כן סקרנו כמה דוגמאות קוד לשימוש בפונקציה זו ובדקנו יישומי שינה. הדגים דרכים מהודרות להשתמש בפונקציה זו גם כיצד היא עובדת בסביבה מושחלת.
כדי לקבל ידע מעמיק על Python יחד עם היישומים השונים שלו, אתה יכול להירשם לשידור חי עם תמיכה 24/7 וגישה לכל החיים.
יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה 'שיטת שינה בזמן פיתון בפייתון' ונחזור אליך בהקדם האפשרי.