ماژول time در پایتون | به زبان ساده
در این مطلب، ماژول time در پایتون همراه با جزئیات کامل معرفی و روش استفاده از توابع گوناگون مرتبط با زمان در ماژول time در پایتون همراه با مثالهای متعدد آموزش داده شده است.
توابع مرتبط با ماژول time در پایتون
در ادامه، برخی از توابع محبوب و متداول مرتبط با ماژول time در پایتون بیان شدهاند.
()time.time پایتون
تابع ()time تعداد ثانیههای صرف شده از زمان «دوره» (Epoch) را باز میگرداند. برای سیستم «ساعت یونیکس» (Unix Time)، یکم ژانویه ۱۹۷۰، ۰۰:۰۰:۰۰ «ساعت هماهنگ جهانی» (Coordinated Universal Time | UTC) دوره است (مبدا آغاز زمان).
1import time
2seconds = time.time()
3print("Seconds since epoch =", seconds)
()time.ctime در پایتون
تابع ()time.ctime ثانیههای گذر کرده در دوره را به عنوان آرگومان دریافت میکند و «رشتهای» (Strings) را که نشانگر ساعت محلی است نمایش میدهد.
1import time
2
3# seconds passed since epoch
4seconds = 1545925769.9618232
5local_time = time.ctime(seconds)
6print("Local time:", local_time)
در صورت اجرای برنامه، خروجی به صورت زیر خواهد بود.
Local time: Thu Dec 27 15:49:29 2018
()time.sleep پایتون
تابع ()sleep «ریسه کنونی» (Current Thread) را برای مدت ثانیههای داده شده به تاخیر میاندازد.
1import time
2
3print("This is printed immediately.")
4time.sleep(2.4)
5print("This is printed after 2.4 seconds.")
پیش از پرداختن به دیگر توابع مرتبط با زمان، کلاس time.struct_time به طور مختصر مورد بررسی قرار میگیرد.
کلاس time.struct_time
توابع گوناگونی مانند ()gmtime و ()asctime در ماژول time وجود دارند که شی time.struct_time را به عنوان یک آرگومان دریافت میکنند یا آن را باز میگردانند.
در ادامه، مثالی از شی time.struct_time ارائه شده است.
1time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27,
2 tm_hour=6, tm_min=35, tm_sec=17,
3 tm_wday=3, tm_yday=361, tm_isdst=0)
اندیس | خصیصه | مقدار |
۰ | tm_year | 0000, ...., 2018, ..., 9999 |
۱ | tm_mon | 1, 2, ..., 12 |
۲ | tm_mday | 1, 2, ..., 31 |
۳ | tm_hour | 0, 1, ..., 23 |
۴ | tm_min | 0, 1, ..., 59 |
۵ | tm_sec | 0, 1, ..., 61 |
۶ | tm_wday | 0, 1, ..., 6; Monday is 0 |
۷ | tm_yday | 1, 2, ..., 366 |
۸ | tm_isdst | 0, 1 or -1 |
مقادیر (عناصر) شی time.struct_time با استفاده از شاخصها و خصیصهها در دسترس هستند.
ادامه فهرست توابع مرتبط با ماژول time در پایتون
در این بخش از مطلب، ادامه فهرست توابع مرتبط با ماژول time در پایتون ارائه شده است.
()time.localtime پایتون
تابع ()localtime تعداد ثانیههای عبور کرده از دوره را به عنوان آرگومان دریافت و مقدار struct_time را در «زمان محلی» (local time) باز میگرداند.
1import time
2
3result = time.localtime(1545925769)
4print("result:", result)
5print("\nyear:", result.tm_year)
6print("tm_hour:", result.tm_hour)
هنگامی که برنامه اجرا شد، خروجی به صورت زیر خواهد بود.
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) year: 2018 tm_hour: 15
اگر هیچ آرگومانی یا None به ()localtime پاس داده شود، مقدار بازگردانده شده توسط ()time مورد استفاده قرار میگیرد.
()Python time.gmtime
تابع ()gmtime تعداد ثانیههای عبور کرده از دوره را به عنوان آرگومان دریافت میکند و struct_time را در قالب UTC باز میگرداند.
1import time
2
3result = time.gmtime(1545925769)
4print("result:", result)
5print("\nyear:", result.tm_year)
6print("tm_hour:", result.tm_hour)
هنگام اجرای برنامه، خروجی به صورت زیر خواهد بود.
1result = time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0)
2
3year = 2018
4tm_hour = 8
اگر هیچ آرگومانی و یا None به gmtime() پاس داده شود، مقدار بازگردانده شده توسط ()time مورد استفاده قرار میگیرد.
()time.mktime پایتون
تابع ()mktime، به عنوان آرگومان struct_time را دریافت میکند (یا تاپل حاوی ۹ عنصر متناظر با struct_time) و ثانیههای عبور کرده از دوره را در زمان محلی باز میگرداند.
اساسا، تابع مذکور، معکوس تابع ()localtime است.
1import time
2
3t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
4
5local_time = time.mktime(t)
6print("Local time:", local_time)
مثال زیر نشان میدهد که چگونه ()mktime و ()localtime مرتبط هستند.
1import time
2
3seconds = 1545925769
4
5# returns struct_time
6t = time.localtime(seconds)
7print("t1: ", t)
8
9# returns seconds from struct_time
10s = time.mktime(t)
11print("\s:", seconds)
هنگام اجرای برنامه، خروجی شبیه به زیر خواهد بود.
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) s: 1545925769.0
()time.asctime پایتون
تابع ()asctime، به عنوان آرگومان struct_time را دریافت میکند (یا یک تاپل حاوی ۹ عنصر متناظر با struct_time) و رشتهای که آن را نمایش میدهد باز میگرداند. در ادامه، مثالی از آنچه بیان شد آورده شده است.
1import time
2
3t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
4
5result = time.asctime(t)
6print("Result:", result)
پس از اجرای قطعه کد بالا، خروجی به صورت زیر خواهد بود:
Result: Fri Dec 28 08:44:04 2018
()time.strftime در پایتون
تابع ()strftime، به عنوان آرگومان struct_time را دریافت میکند (یا تاپل متناظر با آن را) و رشته نشانگر آن را بر مبنای کد فرمت استفاده شده باز میگرداند.
به عنوان مثالی برای مورد بیان شده، قطعه کد زیر قابل توجه است.
1import time
2
3named_tuple = time.localtime() # get struct_time
4time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)
5
6print(time_string)
خروجی حاصل از اجرای قطعه کد بالا، به صورت زیر خواهد بود.
12/28/2018, 09:47:41
در ادامه، کدهای قالب استفاده شده در قطعه کد بالا، تشریح شدهاند.
%Y - year [0001,..., 2018, 2019,..., 9999] |
%m - month [01, 02, ..., 11, 12] |
%d - day [01, 02, ..., 30, 31] |
%H - hour [00, 01, ..., 22, 23 |
%M - minutes [00, 01, ..., 58, 59] |
%S - second [00, 01, ..., 58, 61] |
()time.strptime پایتون
تابع ()strptime رشتهای که نمایانگر زمان است را تجزیه میکند و struct_time را باز میگرداند.
1import time
2
3time_string = "21 June, 2018"
4result = time.strptime(time_string, "%d %B, %Y")
5
6print(result)
هنگام اجرای برنامه، خروجی به صورت زیر خواهد بود:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)
خیلی دقیقی بود لذت بردم.خداقوت
سلام ممنون بابت ایت اطلاعات مفید بود فقط سوال داشتم که من دارم الان یه برنامه ای مینویسم که یه جا به مشکل برخوردم مشکل من اینه که چطوری توی برنامم دایره رسم میشه و غیره که یه جور بازیه چی باید بنویسم که چند ثانیه دایره ها بمونن بعد پاک بشن واسه پاک کردنش مشکل دارم میشه راهنمایی کنید ممنون میشم.
(ثانیه ای که میخواهید)time.sleep با ایمپورت کتابخونه time
(‘cls’)os.system با ایمپورت کتابخونه os