Python da vaqt moduli 3. Asosiy usullar, shablonlar, misollar

Deyarli har qanday dastur vaqtdan foydalanadi. Buning uchun Python-da alohida kutubxona ishlab chiqilgan - vaqtu bilan turli harakatlarni bajarish uchun foydalaniladi. Uning ishlashi uchun avval kod boshida e'lon qilinishi kerak. Buning uchun ushbu qator ishlatiladi:

import vaqti

Keling, ushbu modulni amalda to'g'ri ishlatish bo'yicha turli xil variantlarni ko'rib chiqaylik. 

Davrdan keyingi soniyalar sonini aniqlash

Ushbu vazifani bajarish uchun funktsiya mavjud vaqt() parametrlarni qabul qilmaydi. Uning qaytish qiymati 1-yil 1970-yanvardan boshlab necha soniya oʻtganligini bildiradi. Pythonda bu vaqt davr boshlanishi deb ataladi. Hech bo'lmaganda Unix oilasining operatsion tizimlarida.

Windows-ga kelsak, sana bir xil, ammo bu sanadan oldin bo'lgan salbiy qiymatlar bilan bog'liq muammolar bo'lishi mumkin. 

Amaldagi vaqt mintaqasi UTC.

import vaqti

soniya = vaqt. vaqt ()

chop etish ("Dondan beri soniyalar =", soniya)

Ushbu funktsiyaning murakkabligi shundaki, u aniq sanani ko'rsatmaydi, faqat soniyalar sonini ko'rsatadi. Hammaga tanish bo'lgan formatga aylantirish uchun siz aniq ma'lumotlardan foydalanishingiz kerak. Buning uchun funktsiyadan foydalaniladi time.ctime().

Sana, vaqtni odatiy formatda qaytarish

Vaqtni odatiy formatda qaytarish uchun usul mavjud time.ctime(). Qavslar davr boshidan buyon o'tgan soniyalar sonini ko'rsatadigan o'zgaruvchini yoki raqamni ko'rsatadi. Bu usul barcha sana va vaqt xususiyatlarini, jumladan sana, yil, soatlar, daqiqalar, soniyalar va haftaning kunini qaytaradi.

Bu funksiyadan argumentlarsiz ham foydalanish mumkin. Bunday holda, u joriy sana, vaqt va hokazolarni qaytaradi.

Mana buni ko'rsatadigan kod parchasi.

import vaqti

chop etish (time.ctime())

23-oktabr, seshanba, 10:18:23 2018 yil

Oxirgi qator Python tarjimoni ishlayotgan konsolga chop etiladigan narsadir. Usul avtomatik ravishda qabul qilingan soniyalar sonini foydalanuvchiga tanish shaklga formatlaydi. To'g'ri, yuqorida tavsiflangan barcha elementlar kamdan-kam qo'llaniladi. Qoida tariqasida, siz faqat vaqtni yoki faqat bugungi sanani olishingiz kerak. Buning uchun alohida funktsiya ishlatiladi - strftime(). Ammo buni ko'rib chiqishdan oldin biz sinfni tahlil qilishimiz kerak time.struct_time.

sinf vaqti.struct_time

Bu bir qator usullar bilan qabul qilinishi mumkin bo'lgan dalillar toifasi. Unda hech qanday imkoniyat yo'q. Bu nomli interfeysga ega kortejdir. Oddiy qilib aytganda, ushbu sinfning elementlariga ham nomi, ham indeks raqami orqali kirish mumkin.

U quyidagi atributlardan iborat.Python da vaqt moduli 3. Asosiy usullar, shablonlar, misollar

Diqqat! Bir qator boshqa dasturlash tillaridan farqli o'laroq, bu erda oy noldan 1 gacha emas, balki 12 dan 11 gacha bo'lishi mumkin.

Muayyan formatni qaytarish

Funktsiyadan foydalanish strftime() yil, oy, kun, soat, daqiqalar, soniyalarni alohida olishingiz va ularni matn qatoriga qaytarishingiz mumkin. Keyin u funksiya yordamida foydalanuvchiga chop etilishi mumkin chop etish () yoki boshqacha tarzda qayta ishlanadi.

Argument sifatida funktsiya ushbu modulning boshqa funktsiyalari tomonidan qaytariladigan qiymatni oladigan har qanday o'zgaruvchini olishi mumkin. Masalan, siz mahalliy vaqtni unga o'tkazishingiz mumkin (bu haqda keyinroq muhokama qilinadi), undan kerakli ma'lumotlarni olib tashlaydi.

Mana biz buni qiladigan kod parchasi.

import vaqti

nomli_tuple = time.localtime() # struct_time ni oling

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

chop etish (vaqt_string)

Agar siz ushbu kodni ishga tushirsangiz, joriy sana va vaqt ko'rsatiladi. Elementlarning formati va ketma-ketligini o'zgartirish mumkin. Ular quyidagichadir:

  1. %Y - yil.
  2. %m - oy.
  3. %d – kun.
  4. %H – vaqt.
  5. %M – daqiqa.
  6. %S – soniya.

Shunga ko'ra, siz buni faqat oy va kunning chiqishi uchun qilishingiz mumkin. Buning uchun yilni ko'rsatish buyrug'ini berish shart emas. Ya'ni, yuqoridagi formulada %m/%d argument sifatida yozing va tamom. Yoki aksincha, %d/%m. 

Aslida, satr literallari soni ancha katta. Bu erda ular batafsil tavsiflangan jadval mavjud.Python da vaqt moduli 3. Asosiy usullar, shablonlar, misollar

Mavzuni ma'lum soniyalarga kechiktiring

Buning uchun funktsiyadan foydalaniladi uxlash (). Dasturlash vazifalarining juda katta bloki vaqt o'tishi bilan bog'liq. Ba'zan keyingi bosqichni ma'lum vaqtga kechiktirishingiz kerak. Misol uchun, agar siz ma'lum vaqtni qayta ishlashni talab qiladigan ma'lumotlar bazasi bilan ishlashingiz kerak bo'lsa.

Argument sifatida usul algoritmdan keyingi qadamni kechiktirish uchun soniyalar sonini ifodalovchi qiymatdan foydalanadi.

Masalan, ushbu parchada kechikish 10 soniyani tashkil qiladi.

import vaqti

pauza = 10

chop etish ("Dastur boshlandi ...")

vaqt. uyqu (pauza)

print(str(pauza) + » soniya o'tdi.»)

Natijada, biz buni olamiz:

Dastur boshlandi…

10 soniya o'tdi.

Chiqarishdan ko'rinib turibdiki, dastur birinchi navbatda boshlanganligi haqida xabar beradi. Va o'n soniyadan keyin u bu vaqt o'tganini yozdi.

Funktsiya pauza davomiyligini millisekundlarda belgilash imkonini beradi. Buning uchun biz funktsiya argumentining kasr qiymatlaridan foydalanamiz uyqu. Masalan, 0,1. Bu kechikish 100 millisekund bo'lishini anglatadi.

Mahalliy vaqtni oling

Localtime() funktsiyasidan foydalanib, dastur ma'lum bir vaqt zonasida davr boshlanganidan beri soniyalar sonini oladi. 

Aniqlik uchun kod misolini keltiramiz.

import vaqti

natija = time.localtime(1575721830)

chop etish ("natija:", natija)

chop etish (“ngod:”, natija.tm_yil)

chop etish (“tm_soat:”, natija.tm_hour)

Davrdan keyingi soniyalar soni asosida UTC da struct_time ni qaytaring

Bu vazifaga time.gmtime() yordamida erishiladi. usuli. Misol keltirsak, aniqroq bo'ladi.

import vaqti

natija = time.gmtime (1575721830)

chop etish ("natija:", natija)

chop etish (“ngod:”, natija.tm_yil)

chop etish (“tm_soat:”, natija.tm_hour)

Agar siz ushbu harakatlar ketma-ketligini yoqsangiz, vaqt, yil va vaqt mintaqasiga tegishli elementlar to'plami ko'rsatiladi.

Mahalliy vaqtga avtomatik o'zgartirish bilan davr boshlanganidan beri o'tgan soniyalar sonini qaytaring

Agar siz bunday vazifaga duch kelsangiz, u usul yordamida amalga oshiriladi mktime(), oladi struct_time. Shundan so'ng u funktsiyaning teskari harakatini bajaradi localtime(). Ya'ni, mahalliy vaqt mintaqasiga ko'ra vaqtni vaqt mintaqasiga moslashtirilgan davr boshlanganidan beri o'tgan soniyalar soniga aylantiradi.

mktime() va localtime() funksiyalari bir-biri bilan chambarchas bog'langan. Ushbu kod parchasi buni aniq ko'rsatadi. Keling, uning qanday ishlashini chuqurroq tushunish uchun uni ko'rib chiqaylik. 

import vaqti

soniya = 1575721830

# struct_time ni qaytaradi

t = vaqt.mahalliy vaqt(sekundlar)

chop etish («t1: «, t)

# struct_time dan soniyalarni qaytaradi

s = vaqt.mktime(t)

chop etish (“ns:”, soniya)

Biz o'zgaruvchi ekanligini ko'ramiz soniya davrdan boshlab 1575721830 soniya tayinlangan. Birinchidan, dastur aniq sana, vaqt va boshqa parametrlarni oladi, ushbu qiymatga asoslanib, uni o'zgaruvchiga qo'ying. t, va keyin uning mazmunini o'zgaruvchiga aylantiradi s.

Shundan so'ng, yangi qator o'chiriladi va konsolda soniyalar sonini ko'rsatadi. Bu soniya o'zgaruvchisiga tayinlangan raqam bo'lishini tekshirishingiz mumkin.

struct_time ga tegishli 9 ta raqamdan chiqish sanasi

Aytaylik, bizda yil, oy, sana, haftaning kuni va boshqa bir qator qiymatlarni ifodalovchi 9 ta raqam bor va biz ularni bitta satrga birlashtirishimiz kerak. Buning uchun funktsiyadan foydalaniladi asctime(). U qabul qiladi yoki tayyor struct_time, yoki bir xil ma'noni anglatuvchi 9 qiymatdan iborat har qanday boshqa kortej. Shundan so'ng, sana, vaqt va boshqa bir qator parametrlar bo'lgan satr qaytariladi. 

Foydalanuvchi tomonidan ko'rsatilgan turli xil ma'lumotlarni bitta o'zgaruvchiga keltirish uchun ushbu usuldan foydalanish juda qulay..

Masalan, foydalanuvchi kun, oy, yil, hafta kuni va tadbir uchun ro'yxatdan o'tish bilan bog'liq boshqa ma'lumotlarni alohida ko'rsatadigan dastur bo'lishi mumkin. Shundan so'ng, olingan ma'lumotlar ma'lumotlar bazasiga kiritiladi va keyin uni so'ragan boshqa shaxsga beriladi.

Python satriga asoslangan vaqt va sanani olish

Aytaylik, foydalanuvchi turli xil ma'lumotlarni ko'rsatdi va biz ularni shaxs kiritgan formatda bir qatorga birlashtirib, keyin boshqa o'zgaruvchiga nusxa ko'chirishimiz va u erda standart formatga qayta qurishimiz kerak. Buning uchun funktsiyadan foydalaniladi time.strptime().

Bu qiymat ko'rsatilgan o'zgaruvchini oladi va bizga allaqachon tanish bo'lgan narsani qaytaradi struct_time.

Aniqlik uchun biz shunday dastur yozamiz.

import vaqti

time_string = «15-iyun, 2019-yil»

natija = time.strptime(time_string, «%d %B, %Y»)

chop etish (natija)

Chiqarish qanday bo'lishini taxmin qiling? Pastki chiziqqa qaramasdan taxmin qilishga harakat qiling. Va keyin javobni tekshiring.

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)

Bir so'z bilan aytganda, Pythonda sana va vaqtlar bilan ishlash unchalik qiyin emas. Ushbu ko'rsatmalarga amal qilish kifoya va hamma narsa muvaffaqiyatli bo'ladi. Kutubxonadan foydalanish vaqt Foydalanuvchi vaqt bilan ishlash uchun juda ko'p imkoniyatlarga ega bo'ladi, masalan:

  1. Belgilangan vaqt uchun dasturning bajarilishini to'xtatib turing.
  2. Davrdan beri o'tgan vaqtni soniyalarda ko'rsating. Ushbu ma'lumot vaqtni jamlash yoki u ustida boshqa matematik operatsiyalarni bajarish uchun ishlatilishi mumkin.
  3. Qulay formatga aylantiring. Bundan tashqari, dasturchining o'zi qaysi elementlarning qanday ketma-ketlikda ko'rsatilishini belgilashi mumkin. 

Bundan tashqari, bir qator boshqa imkoniyatlar mavjud, ammo bugun biz eng asosiylarini tahlil qildik. Ular vaqt o'tishi bilan ishlaydigan deyarli har qanday dasturda foydali bo'ladi. Omad.

Leave a Reply