Python-da vaxt modulu 3. Əsas metodlar, şablonlar, nümunələr

Demək olar ki, hər hansı bir proqram vaxtdan istifadə edir. Python-da bunun üçün ayrıca bir kitabxana hazırlanmışdır - vaxtonunla müxtəlif hərəkətləri yerinə yetirmək üçün istifadə olunur. Onun işləməsi üçün əvvəlcə kodun əvvəlində elan edilməlidir. Bunun üçün bu xətt istifadə olunur:

idxal vaxtı

Bu modulu praktikada düzgün istifadə etməyin müxtəlif variantlarını nəzərdən keçirək. 

Epoxadan keçən saniyələrin sayının müəyyən edilməsi

Bu vəzifəni yerinə yetirmək üçün bir funksiya var vaxt() heç bir parametr qəbul etmir. Onun qaytarılma dəyəri 1-ci il yanvarın 1970-dən neçə saniyə keçdiyidir. Python-da bu vaxt dövrün başlanğıcı adlanır. Ən azı Unix ailəsinin əməliyyat sistemlərində.

Windows-a gəldikdə, tarix eynidir, lakin bu tarixdən əvvəl olan mənfi dəyərlərlə bağlı problemlər ola bilər. 

İstifadə olunan vaxt qurşağı UTC-dir.

idxal vaxtı

saniyə = vaxt.zaman()

çap ("Dövrdən bəri saniyələr =", saniyə)

Bu funksiyanın mürəkkəbliyi ondadır ki, o, dəqiq tarixi deyil, yalnız saniyələrin sayını göstərir. Hər kəsə tanış olan formata çevirmək üçün dəqiq məlumatlardan istifadə etmək lazımdır. Bunun üçün funksiyadan istifadə olunur time.ctime().

Tarixi, vaxtı adi formatda qaytarmaq

Vaxtı adi formatda qaytarmaq üçün bir üsul var time.ctime(). Mötərizələr dövrün başlanğıcından keçən saniyələrin sayını göstərən dəyişəni və ya rəqəmi göstərir. Bu üsul tarix, il, saatların, dəqiqələrin, saniyələrin və həftənin günü daxil olmaqla bütün tarix və vaxt xüsusiyyətlərini qaytarır.

Bu funksiya arqumentlər olmadan da istifadə edilə bilər. Bu halda o, cari tarixi, vaxtı və s.-ni qaytarır.

Budur bunu nümayiş etdirən kod parçası.

idxal vaxtı

çap (time.ctime())

Çərşənbə axşamı 23 oktyabr 10:18:23 2018

Sonuncu sətir Python tərcüməçisinin işlədiyi konsolda çap olunan şeydir. Metod avtomatik olaraq qəbul edilən saniyə sayını istifadəçiyə tanış olan formaya formatlaşdırır. Düzdür, yuxarıda təsvir edilən bütün elementlər nadir hallarda istifadə olunur. Bir qayda olaraq, ya yalnız vaxtı, ya da yalnız bugünkü tarixi əldə etməlisiniz. Bunun üçün ayrıca bir funksiya istifadə olunur - strftime(). Ancaq bunu nəzərdən keçirməzdən əvvəl sinfi təhlil etməliyik vaxt.struct_time.

sinif vaxtı.struct_time

Bu, bir sıra üsullarla qəbul edilə bilən arqumentlər kateqoriyasıdır. Bunun heç bir variantı yoxdur. Bu, adlandırılmış interfeysi olan bir dəstdir. Sadə dillə desək, bu sinfin elementlərinə həm ad, həm də indeks nömrəsi ilə daxil olmaq olar.

O, aşağıdakı atributlardan ibarətdir.Python-da vaxt modulu 3. Əsas metodlar, şablonlar, nümunələr

Diqqət! Bir sıra digər proqramlaşdırma dillərindən fərqli olaraq, burada ay sıfırdan 1-ə qədər deyil, 12-dən 11-yə qədər dəyişə bilər.

Xüsusi Formatın qaytarılması

Funksiyadan istifadə etməklə strftime() ili, ayı, günü, saatı, dəqiqələri, saniyələri ayrı-ayrılıqda əldə edib mətn sətirinə qaytara bilərsiniz. Sonra funksiyadan istifadə edərək istifadəçiyə çap oluna bilər çap () və ya başqa şəkildə işlənmişdir.

Arqument olaraq funksiya bu modulun digər funksiyaları tərəfindən qaytarılan dəyəri alan istənilən dəyişəni qəbul edə bilər. Məsələn, yerli vaxtı ona köçürə bilərsiniz (bu, daha sonra müzakirə olunacaq), oradan lazımi məlumatları çıxaracaq.

Bunu etdiyimiz kod parçası budur.

idxal vaxtı

adlı_tuple = time.localtime() # struct_time əldə edin

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

çap (zaman_sətri)

Bu kodu işlətsəniz, cari tarix və vaxt göstərilir. Elementlərin formatı və ardıcıllığı dəyişdirilə bilər. Onlar aşağıdakılardır:

  1. %Y ildir.
  2. %m aydır.
  3. %d – gün.
  4. %H – vaxt.
  5. %M – dəqiqə.
  6. %S – saniyə.

Müvafiq olaraq, çıxışın yalnız ay və gün olması üçün bunu edə bilərsiniz. Bunun üçün sadəcə olaraq ili göstərmək üçün əmr vermək lazım deyil. Yəni yuxarıdakı düsturda %m/%d arqumenti kimi yazın, vəssalam. Və ya əksinə, %d/%m. 

Əslində, sətir literallarının sayı daha böyükdür. Burada onların ətraflı təsvir olunduğu bir cədvəl var.Python-da vaxt modulu 3. Əsas metodlar, şablonlar, nümunələr

Mövzunu müəyyən sayda saniyə təxirə salın

Bunun üçün funksiyadan istifadə olunur yatmaq (). Proqramlaşdırma tapşırıqlarının kifayət qədər böyük bir bloku vaxtın keçməsi ilə əlaqələndirilir. Bəzən növbəti addımı müəyyən müddətə təxirə salmalı olursunuz. Məsələn, emal etmək üçün müəyyən vaxt tələb edən verilənlər bazası ilə qarşılıqlı əlaqə qurmaq lazımdırsa.

Arqument olaraq, metod alqoritmdən növbəti addımı gecikdirmək üçün saniyələrin sayını ifadə edən dəyərdən istifadə edir.

Məsələn, bu fraqmentdə gecikmə 10 saniyədir.

idxal vaxtı

fasilə = 10

çap ("Proqram başladı...")

vaxt.yuxu(fasilə)

print(str(pause) + » saniyə keçdi.»)

Nəticədə bunu alacağıq:

Proqram başladı...

10 saniyə keçdi.

Çıxışdan da göründüyü kimi, proqram ilk olaraq işə başladığını bildirir. Və on saniyədən sonra o, bu vaxtın keçdiyini yazdı.

Funksiya fasilənin müddətini millisaniyələrlə təyin etməyə imkan verir. Bunun üçün funksiya arqumentinin kəsr dəyərlərindən istifadə edirik yuxu. Məsələn, 0,1. Bu o deməkdir ki, gecikmə 100 millisaniyə olacaq.

Yerli vaxtı əldə edin

Localtime() funksiyasından istifadə edərək, proqram müəyyən vaxt qurşağında dövrün başlanğıcından keçən saniyələrin sayını alır. 

Aydınlıq üçün kod nümunəsi verək.

idxal vaxtı

nəticə = time.localtime(1575721830)

çap ("nəticə:", nəticə)

çap (“nгод:”, nəticə.tm_il)

çap («tm_saat:», nəticə.tm_saat)

Epoxadan keçən saniyələrin sayına əsasən UTC-də struct_time qaytarın

Bu tapşırıq time.gmtime() istifadə edərək əldə edilir. üsul. Bir misal çəksək daha aydın olar.

idxal vaxtı

nəticə = time.gmtime(1575721830)

çap ("nəticə:", nəticə)

çap (“nгод:”, nəticə.tm_il)

çap («tm_saat:», nəticə.tm_saat)

Bu hərəkətlər ardıcıllığını yandırsanız, vaxt, il və saat qurşağı ilə əlaqəli elementlər dəsti göstərilir.

Yerli vaxta avtomatik çevrilmə ilə dövrün başlanğıcından bəri saniyələrin sayını qaytarın

Əgər belə bir vəzifə ilə qarşılaşırsınızsa, metoddan istifadə edərək həyata keçirilir mktime(), götürür struct_time. Bundan sonra funksiyanın əks hərəkətini yerinə yetirir yerli vaxt(). Yəni, yerli saat qurşağına uyğun olaraq vaxtı, vaxt qurşağına uyğunlaşdırılmış epoxanın başlanğıcından keçən saniyələrin sayına çevirir.

mktime() və localtime() funksiyaları bir-biri ilə sıx bağlıdır. Bu kod parçası bunu aydın şəkildə nümayiş etdirir. Bunun necə işlədiyini daha dərindən başa düşmək üçün gəlin ona nəzər salaq. 

idxal vaxtı

saniyə = 1575721830

# struktur vaxtını qaytarır

t = vaxt.yerli vaxt(saniyə)

çap(«t1: «, t)

# struct_time-dan saniyələri qaytarır

s = vaxt.mktime(t)

çap (“ns:”, saniyə)

Dəyişən olduğunu görürük seconds epoxadan bəri 1575721830 saniyə təyin edilmişdir. Birincisi, proqram dəqiq tarixi, vaxtı və digər parametrləri alır, bu dəyərə əsaslanaraq onu dəyişənə qoyun t, və sonra onun məzmununu dəyişənə çevirir s.

Bundan sonra yeni sətir çıxır və konsolda saniyələrin sayını göstərir. Bunun saniyə dəyişəninə təyin edilmiş eyni nömrə olacağını yoxlaya bilərsiniz.

struct_time-a istinad edən 9 ədəddən çıxış tarixi

Tutaq ki, ili, ayı, tarixi, həftənin gününü və bir sıra digər dəyərləri təmsil edən 9 rəqəmimiz var və biz onları bir sətirdə birləşdirməliyik. Bunun üçün funksiyadan istifadə olunur asctime(). Qəbul edir və ya hazırdır struktur_zaman, və ya eynini ifadə edən 9 dəyərdən ibarət hər hansı digər dəst. Bundan sonra tarix, vaxt və bir sıra digər parametrlər olan sətir qaytarılır. 

Fərqli istifadəçi tərəfindən müəyyən edilmiş məlumatları bir dəyişən halına gətirmək üçün bu metoddan istifadə etmək çox rahatdır..

Məsələn, istifadəçinin ayrı-ayrılıqda günü, ayı, ili, həftənin gününü və hadisənin qeydiyyatı ilə bağlı digər məlumatları göstərdiyi proqram ola bilər. Bundan sonra alınan məlumatlar bazaya daxil edilir və sonra onu tələb edən başqa şəxsə verilir.

Python sətri əsasında vaxt və tarix əldə edilir

Tutaq ki, istifadəçi bir-birindən fərqli məlumatları göstərib və biz onları şəxsin daxil etdiyi formatda bir sətirdə birləşdirməliyik, sonra başqa dəyişənə surət çıxarmalı və orada onu standart formatda yenidən qurmalıyıq. Bunun üçün funksiyadan istifadə olunur time.strptime().

Bu dəyərin göstərildiyi dəyişəni götürür və bizə artıq tanış olanı qaytarır struct_time.

Aydınlıq üçün belə bir proqram yazacağıq.

idxal vaxtı

time_string = «15 iyun, 2019»

nəticə = time.strptime(zaman_sətiri, «%d %B, %Y»)

çap (nəticə)

Çıxışın nə olacağını təxmin edin? Alt xəttə baxmadan təxmin etməyə çalışın. Və sonra cavabı yoxlayın.

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 sözlə, Python-da tarix və saatlarla işləmək heç də çətin deyil. Bu təlimatlara əməl etmək kifayətdir və hər şey nəticə verəcəkdir. Kitabxanadan istifadə vaxt istifadəçi vaxtla işləmək üçün çoxlu imkanlar əldə edir, məsələn:

  1. Proqramın icrasını müəyyən müddətə dayandırın.
  2. Epoxadan keçən vaxtı saniyələrlə göstərin. Bu məlumat vaxtı yekunlaşdırmaq və ya onun üzərində digər riyazi əməliyyatları yerinə yetirmək üçün istifadə edilə bilər.
  3. Rahat bir formata çevirin. Üstəlik, hansı elementlərin və hansı ardıcıllıqla göstəriləcəyini proqramçı özü təyin edə bilər. 

Bir sıra başqa imkanlar da var, lakin bu gün biz ən əsaslarını təhlil etdik. Onlar zamanla işləyən demək olar ki, hər hansı bir proqramda faydalı olacaqlar. Uğurlar.

Cavab yaz