ماژول زمان در پایتون 3. روش های اصلی، قالب ها، مثال ها

تقریباً هر برنامه ای از زمان استفاده می کند. در پایتون، یک کتابخانه جداگانه برای این کار توسعه داده شده است - زمانبرای انجام انواع اعمال با آن استفاده می شود. برای اینکه کار کند، ابتدا باید در ابتدای کد اعلام شود. این خط برای این مورد استفاده می شود:

زمان واردات

بیایید گزینه های مختلفی را در مورد نحوه استفاده صحیح از این ماژول در عمل در نظر بگیریم. 

تعیین تعداد ثانیه از دوران

برای انجام این کار، یک تابع وجود دارد زمان() که هیچ پارامتری نمی گیرد. مقدار برگشتی آن چند ثانیه از اول ژانویه 1 گذشته است. در پایتون این زمان را شروع یک دوره می نامند. حداقل در سیستم عامل های خانواده یونیکس.

در مورد ویندوز، تاریخ یکسان است، اما ممکن است مشکلاتی با مقادیر منفی قبل از این تاریخ وجود داشته باشد. 

منطقه زمانی مورد استفاده UTC است.

زمان واردات

ثانیه = time.time()

چاپ ("ثانیه از دوران ="، ثانیه)

پیچیدگی این تابع در این است که دقیقا تاریخ را نمایش نمی دهد، بلکه فقط تعداد ثانیه ها را نمایش می دهد. برای تبدیل به فرمت آشنا برای همه، باید از اطلاعات دقیق استفاده کنید. برای این کار از تابع استفاده می شود time.ctime().

بازگرداندن تاریخ، زمان در قالب معمول

برای برگرداندن زمان به فرمت معمول، روشی وجود دارد time.ctime(). براکت ها یک متغیر یا عددی را نشان می دهد که نشان دهنده تعداد ثانیه هایی است که از شروع دوره گذشته است. این روش تمام مشخصات تاریخ و زمان از جمله تاریخ، سال، تعداد ساعت، دقیقه، ثانیه و روز هفته را برمی‌گرداند.

این تابع بدون آرگومان نیز قابل استفاده است. در این صورت، تاریخ، زمان فعلی و ... را برمی گرداند.

در اینجا یک قطعه کد است که این را نشان می دهد.

زمان واردات

print(time.ctime())

سه شنبه 23 اکتبر 10:18:23 2018

آخرین خط چیزی است که در کنسولی که مفسر پایتون در آن اجرا می شود چاپ می شود. این روش به طور خودکار تعداد ثانیه های دریافتی را به فرمی که کاربر آشنا می کند قالب بندی می کند. درست است، تمام عناصر شرح داده شده در بالا به ندرت مورد استفاده قرار می گیرند. به عنوان یک قاعده، شما باید یا فقط زمان، یا فقط تاریخ امروز را دریافت کنید. برای این، یک تابع جداگانه استفاده می شود - strftime(). اما قبل از اینکه آن را در نظر بگیریم، باید کلاس را تجزیه کنیم time.struct_time.

کلاس time.struct_time

این دسته ای از آرگومان ها است که با طیف وسیعی از روش ها قابل قبول است. هیچ گزینه ای نداره این یک تاپل با یک رابط نامگذاری شده است. به زبان ساده، عناصر این کلاس هم با نام و هم با شماره فهرست قابل دسترسی هستند.

از ویژگی های زیر تشکیل شده است.ماژول زمان در پایتون 3. روش های اصلی، قالب ها، مثال ها

توجه! برخلاف تعدادی از زبان های برنامه نویسی دیگر، در اینجا ماه می تواند از 1 تا 12 باشد و نه از صفر تا 11.

بازگرداندن یک فرمت خاص

با استفاده از تابع strftime() می توانید سال، ماه، روز، ساعت، دقیقه، ثانیه را به صورت جداگانه دریافت کنید و آنها را به یک رشته متن برگردانید. سپس با استفاده از تابع می توان آن را برای کاربر چاپ کرد چاپ () یا به شکل دیگری پردازش می شود.

به عنوان یک آرگومان، یک تابع می تواند هر متغیری را که مقداری را که توسط سایر توابع این ماژول برگردانده می شود، بگیرد. به عنوان مثال، می توانید زمان محلی را به آن منتقل کنید (بعداً مورد بحث قرار خواهد گرفت)، که از آن داده های لازم را خارج می کند.

در اینجا قطعه کدی است که ما این کار را انجام می دهیم.

زمان واردات

named_tuple = time.localtime() # get struct_time

time_string = time.strftime(«%m/%d/%Y، %H:%M:%S»، named_tuple)

چاپ (زمان_رشته)

اگر این کد را اجرا کنید، تاریخ و زمان فعلی نمایش داده می شود. قالب و ترتیب عناصر را می توان تغییر داد. آنها به شرح زیر است:

  1. %Y سال است.
  2. %m ماه است.
  3. %d – روز.
  4. %H – زمان.
  5. %M – دقیقه.
  6. %S – ثانیه.

بر این اساس، می توانید آن را طوری بسازید که خروجی منحصراً مربوط به ماه و روز باشد. برای انجام این کار، شما به سادگی نیازی به دادن فرمان برای نمایش سال ندارید. یعنی در فرمول بالا به عنوان آرگومان %m/%d بنویسید و تمام. یا برعکس، %d/%m. 

در واقع، تعداد لفظ رشته ای بسیار بیشتر است. در اینجا جدولی وجود دارد که در آن به تفصیل توضیح داده شده است.ماژول زمان در پایتون 3. روش های اصلی، قالب ها، مثال ها

یک موضوع را برای چند ثانیه به تعویق بیندازید

برای این کار از تابع استفاده می شود خواب (). بلوک نسبتاً بزرگی از وظایف برنامه نویسی با گذشت زمان همراه است. گاهی اوقات باید مرحله بعدی را برای زمان خاصی به تعویق بیندازید. به عنوان مثال، اگر شما نیاز به تعامل با یک پایگاه داده دارید که پردازش آن زمان مشخصی را می طلبد.

به عنوان یک آرگومان، این روش از مقداری استفاده می کند که تعداد ثانیه ها را برای به تاخیر انداختن مرحله بعدی از الگوریتم بیان می کند.

برای مثال در این قطعه تاخیر 10 ثانیه است.

زمان واردات

مکث = 10

چاپ («برنامه شروع شد…»)

time.sleep (مکث)

print(str(pause) + » ثانیه گذشت.»)

در نتیجه این را به دست خواهیم آورد:

برنامه شروع شد…

10 ثانیه گذشت.

همانطور که از خروجی می بینیم، برنامه ابتدا گزارش می دهد که شروع شده است. و بعد از ده ثانیه نوشت که این زمان گذشته است.

این تابع به شما امکان می دهد مدت زمان مکث را بر حسب میلی ثانیه مشخص کنید. برای این کار از مقادیر کسری آرگومان تابع استفاده می کنیم بخواب به عنوان مثال، 0,1،100. این به این معنی است که تاخیر XNUMX میلی ثانیه خواهد بود.

زمان محلی را دریافت کنید

با استفاده از تابع ()localtime، برنامه تعداد ثانیه هایی را از زمان شروع دوره در یک منطقه زمانی خاص دریافت می کند. 

بیایید یک کد مثال برای وضوح ارائه دهیم.

زمان واردات

result = time.localtime(1575721830)

چاپ ("نتیجه:"، نتیجه)

چاپ («nгод:»، result.tm_year)

print(«tm_hour:»، result.tm_hour)

struct_time را در UTC بر اساس تعداد ثانیه‌های پس از دوره برگردانید

این کار با استفاده از time.gmtime(). روش. اگر مثال بزنیم واضح تر می شود.

زمان واردات

result = time.gmtime(1575721830)

چاپ ("نتیجه:"، نتیجه)

چاپ («nгод:»، result.tm_year)

print(«tm_hour:»، result.tm_hour)

اگر این دنباله از اقدامات را روشن کنید، مجموعه ای از عناصر مربوط به زمان، سال و منطقه زمانی نمایش داده می شود.

تعداد ثانیه‌ها از شروع دوره را با تبدیل خودکار به زمان محلی برگردانید

اگر با چنین کاری روبرو هستید، با استفاده از روش اجرا می شود mktime()، که طول می کشد struct_time. پس از آن، عمل معکوس تابع را انجام می دهد زمان محلی(). یعنی زمان را با توجه به منطقه زمانی محلی به تعداد ثانیه هایی که از شروع دوره می گذرد تبدیل می کند که برای منطقه زمانی تنظیم شده است.

توابع mktime() و localtime() بسیار در هم تنیده شده اند. این قطعه کد به وضوح این را نشان می دهد. بیایید نگاهی به آن بیندازیم تا عمیق تر بفهمیم که چگونه کار می کند. 

زمان واردات

ثانیه = 1575721830

# struct_time را برمی گرداند

t = time.localtime (ثانیه)

چاپ («t1: «، t)

# ثانیه از struct_time برمی‌گرداند

s = time.mktime(t)

چاپ («ns:»، ثانیه)

می بینیم که متغیر ثانیه از آن دوره 1575721830 ثانیه به آن اختصاص یافته است. ابتدا، برنامه تاریخ، زمان و سایر پارامترهای دقیق را دریافت می کند، بر اساس این مقدار، آن را در یک متغیر قرار می دهد. t، و سپس محتویات آن را به یک متغیر تبدیل می کند s.

پس از آن یک خط جدید را می زند و تعداد ثانیه ها را در کنسول نمایش می دهد. می توانید بررسی کنید که همان عددی باشد که به متغیر seconds اختصاص داده شده است.

تاریخ خروجی از 9 عدد که به struct_time اشاره دارد

فرض کنید 9 عدد داریم که سال، ماه، تاریخ، روز هفته و تعدادی مقادیر دیگر را نشان می دهد و باید آنها را در یک رشته ترکیب کنیم. برای این کار از تابع استفاده می شود asctime(). او می پذیرد یا آماده است struct_time، یا هر مقدار 9 تایی دیگر که مخفف همان است. پس از آن، رشته ای برگردانده می شود که تاریخ، زمان و تعدادی پارامتر دیگر است. 

استفاده از این روش به منظور آوردن داده های مشخص شده توسط کاربر متفاوت در یک متغیر بسیار راحت است..

به عنوان مثال، ممکن است برنامه ای باشد که در آن کاربر به طور جداگانه روز، ماه، سال، روز هفته و سایر داده های مربوط به ثبت نام برای یک رویداد را مشخص می کند. پس از آن اطلاعات دریافتی وارد پایگاه داده می شود و سپس برای شخص دیگری که آن را درخواست می کند صادر می شود.

دریافت زمان و تاریخ بر اساس رشته پایتون

فرض کنید کاربر داده های متفاوتی را مشخص کرده است و ما باید آنها را در یک خط با فرمتی که شخص وارد کرده است ترکیب کنیم و سپس یک کپی در متغیر دیگری ایجاد کنیم و آن را در یک قالب استاندارد دوباره بسازیم. برای این کار از تابع استفاده می شود time.strptime().

متغیری را می گیرد که در آن این مقدار مشخص شده است، و آنچه از قبل آشنا به ما است برمی گرداند struct_time.

برای وضوح، چنین برنامه ای را می نویسیم.

زمان واردات

time_string = «15 ژوئن 2019»

result = time.strptime(time_string، «%d %B، %Y»)

چاپ (نتیجه)

حدس بزنید خروجی چه خواهد بود؟ سعی کنید بدون نگاه کردن به نتیجه حدس بزنید. و سپس پاسخ را بررسی کنید.

time.struct_time(tm_year=2019، tm_mon=6، tm_mday=15، tm_hour=0، tm_min=0، tm_sec=0، tm_wday=5، tm_yday=166، tm_isdst=-1)

در یک کلام کار با تاریخ و زمان در پایتون اصلا سخت نیست. کافی است این دستورالعمل ها را دنبال کنید و همه چیز درست می شود. با استفاده از کتابخانه زمان کاربر تعداد زیادی فرصت برای کار با زمان دریافت می کند، مانند:

  1. تعلیق اجرای برنامه برای مدت زمان مشخص.
  2. زمان سپری شده از دوران را در چند ثانیه نشان دهید. از این اطلاعات می توان برای جمع بندی زمان یا انجام سایر عملیات ریاضی روی آن استفاده کرد.
  3. تبدیل به یک فرمت مناسب علاوه بر این، خود برنامه نویس می تواند تعیین کند که کدام عناصر و به چه ترتیبی نمایش داده شوند. 

تعدادی احتمال دیگر نیز وجود دارد، اما امروز ما ابتدایی ترین آنها را تحلیل کرده ایم. آنها تقریباً در هر برنامه ای که به نحوی با زمان کار می کند مفید خواهند بود. موفق باشید.

پاسخ دهید