Модули вақт дар Python 3. Усулҳои асосӣ, қолибҳо, мисолҳо

Қариб ҳама барномаҳо вақтро истифода мебаранд. Дар Python, китобхонаи алоҳида барои ин таҳия шудааст - замонистифода бурда мешавад, ки бо он амалҳои гуногунро анҷом диҳад. Барои он ки он кор кунад, аввал бояд дар аввали код эълон карда шавад. Ин сатр барои ин истифода мешавад:

вақти воридот

Биёед вариантҳои гуногунро дар бораи чӣ гуна дуруст истифода бурдани ин модул дар амал баррасӣ кунем. 

Муайян кардани шумораи сонияҳо аз давраи

Барои иҷрои ин вазифа, функсия вуҷуд дорад замон() ки ягон параметр намегирад. Қимати бозгашти он аз 1 январи соли 1970 чанд сония гузаштааст. Дар Python ин вақтро оғози давра меноманд. Ҳадди ақал дар системаҳои оператсионии оилаи Unix.

Дар мавриди Windows, сана якхела аст, аммо бо арзишҳои манфие, ки пеш аз ин сана буданд, метавонанд мушкилот дошта бошанд. 

Минтақаи вақти истифодашуда UTC аст.

вақти воридот

сония = вақт.вақт ()

чоп ("Сонияҳо аз давра =", сония)

Мушкилии ин функсия дар он аст, ки он на дақиқ сана, балки танҳо шумораи сонияҳоро нишон медиҳад. Барои табдил додан ба формати ба ҳама шинос, шумо бояд маълумоти дақиқро истифода баред. Барои ин, функсия истифода мешавад time.ctime ().

Баргардонидани сана, вақт дар формати муқаррарӣ

Барои баргардонидани вақт дар формати муқаррарӣ, як усул вуҷуд дорад time.ctime (). Қавсҳо тағирёбанда ё рақамеро нишон медиҳанд, ки шумораи сонияҳоеро, ки аз оғози давра гузаштаанд, нишон медиҳанд. Ин усул тамоми хусусиятҳои сана ва вақт, аз ҷумла сана, сол, шумораи соатҳо, дақиқаҳо, сонияҳо ва рӯзи ҳафтаро бармегардонад.

Ин функсия инчунин метавонад бидуни далелҳо истифода шавад. Дар ин ҳолат, он сана, вақт ва ғайраро бармегардонад.

Дар ин ҷо як пораи рамзест, ки инро нишон медиҳад.

вақти воридот

чоп (time.ctime())

Сш 23 октябр 10:18:23 2018

Сатри охирин он чизест, ки дар консол чоп карда мешавад, ки тарҷумони Python кор мекунад. Ин усул ба таври худкор миқдори сонияҳои гирифташударо ба шакли ба корбар шинос формат мекунад. Дуруст аст, ки ҳама унсурҳои дар боло тавсифшуда хеле кам истифода мешаванд. Чун қоида, ба шумо лозим аст, ки ё танҳо вақт, ё танҳо санаи имрӯза гиред. Барои ин функсияи алоҳида истифода мешавад - strftime (). Аммо пеш аз он ки мо онро баррасӣ кунем, мо бояд синфро таҳлил кунем time.struct_time.

вақти синф.struct_time

Ин як категорияи далелҳост, ки онҳоро бо як қатор усулҳо қабул кардан мумкин аст. Он ҳеҷ гуна интихоб надорад. Ин як наворест, ки интерфейси ном дорад. Оддӣ карда гӯем, ба унсурҳои ин синф ҳам аз рӯи ном ва ҳам аз рӯи рақами индекс дастрас шудан мумкин аст.

Он аз сифатҳои зерин иборат аст.Модули вақт дар Python 3. Усулҳои асосӣ, қолибҳо, мисолҳо

Диққат! Баръакси як қатор забонҳои дигари барномасозӣ, дар ин ҷо моҳ метавонад аз 1 то 12 бошад, на аз сифр то 11.

Бозгашти формати мушаххас

Истифодаи функсия strftime () шумо метавонед сол, моҳ, рӯз, соат, дақиқаҳо, сонияҳоро ба таври инфиродӣ гиред ва онҳоро ба сатри матн баргардонед. Он гоҳ он метавонад ба корбар бо истифода аз функсия чоп карда шавад чоп () ё ба таври дигар коркард карда мешавад.

Ҳамчун далел, функсия метавонад ҳама гуна тағирёбандаеро гирад, ки арзиши баргардонидаи дигар функсияҳои ин модулро мегирад. Масалан, шумо метавонед вақти маҳаллиро ба он интиқол диҳед (ин баъдтар муҳокима карда мешавад), ки аз он маълумоти заруриро берун мекунад.

Ин аст пораи код, ки мо онро иҷро мекунем.

вақти воридот

name_tuple = time.localtime() # даст struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», ном_бар)

чоп (time_string)

Агар шумо ин кодро иҷро кунед, сана ва вақти ҷорӣ нишон дода мешавад. Формат ва пайдарпаии элементҳоро тағир додан мумкин аст. Онҳо чунинанд:

  1. %Y сол аст.
  2. %м моҳ аст.
  3. %d – рӯз.
  4. %H – вақт.
  5. %M – дақиқа.
  6. %S – сония.

Мувофиқи он, шумо метавонед онро тавре созед, ки баромад танҳо дар моҳ ва рӯз бошад. Барои ин ба шумо танҳо лозим нест, ки фармон диҳед, ки солро нишон диҳед. Яъне дар формулаи боло ҳамчун аргумент %m/%d нависед ва тамом. Ё баръакс, %d/%m. 

Дар асл, шумораи литералҳои сатр хеле зиёд аст. Дар ин ҷо ҷадвале ҳаст, ки онҳо ба таври муфассал тавсиф карда шудаанд.Модули вақт дар Python 3. Усулҳои асосӣ, қолибҳо, мисолҳо

Як риштаро барои шумораи муайяни сония мавқуф гузоред

Барои ин, функсия истифода мешавад хоб (). Блоки хеле калони вазифаҳои барномасозӣ бо гузашти вақт алоқаманд аст. Баъзан шумо бояд қадами навбатиро барои вақти муайян ба таъхир гузоред. Масалан, агар ба шумо лозим ояд, ки бо пойгоҳи додаҳо кор кунед, ки барои коркард миқдори муайяни вақтро мегирад.

Ҳамчун далел, усул арзишеро истифода мебарад, ки шумораи сонияҳоро барои таъхири қадами оянда аз алгоритм ифода мекунад.

Масалан, дар ин порча таъхир 10 сония аст.

вақти воридот

таваққуф = 10

чоп ("Барнома оғоз шуд...")

вақт.хоб (танаффус)

чоп (str(танаффус) + » сония гузашт.»)

Дар натиҷа, мо инро ба даст меорем:

Барнома оғоз шуд…

10 сония гузашт.

Тавре ки мо аз баромади худ мебинем, барнома аввал хабар медиҳад, ки оғоз шудааст. Ва пас аз даҳ сония, вай навишт, ки ин вақт гузашт.

Функсия ба шумо имкон медиҳад, ки давомнокии таваққуфро дар миллисонияҳо муайян кунед. Барои ин, мо арзишҳои касри аргументи функсияро истифода мебарем хоб. Масалан, 0,1. Ин маънои онро дорад, ки таъхир 100 миллисония хоҳад буд.

Вақти маҳаллиро гиред

Бо истифода аз функсияи localtime(), барнома шумораи сонияҳоро аз оғози давра дар минтақаи вақти муайян мегирад. 

Барои возеҳият биёед як рамзи мисоле диҳем.

вақти воридот

натиҷа = time.localtime(1575721830)

чоп ("натиҷа:", натиҷа)

чоп ("ngod:", result.tm_year)

чоп («tm_hour:», result.tm_hour)

Баргардонидани struct_time дар UTC дар асоси шумораи сонияҳо аз давра

Ин вазифа бо истифода аз time.gmtime () ба даст оварда мешавад. усул. Агар мисол орем, равшантар мешавад.

вақти воридот

натиҷа = time.gmtime (1575721830)

чоп ("натиҷа:", натиҷа)

чоп ("ngod:", result.tm_year)

чоп («tm_hour:», result.tm_hour)

Агар шумо ин пайдарпайии амалҳоро фаъол созед, он гоҳ маҷмӯи унсурҳои марбут ба вақт, сол ва минтақаи вақт нишон дода мешаванд.

Шумораи сонияҳоро аз оғози давра бо табдили худкор ба вақти маҳаллӣ баргардонед

Агар шумо бо чунин вазифа рӯ ба рӯ шавед, он бо истифода аз усул амалӣ карда мешавад mktime (), ки мегирад сохтор_вақт. Баъд аз ин, он амали баръакси функсияро иҷро мекунад вақти маҳаллӣ (). Ин аст, ки он вақтро мувофиқи минтақаи вақти маҳаллӣ ба миқдори сонияҳое, ки аз оғози давра гузаштаанд, табдил медиҳад, ки барои минтақаи вақт танзим карда шудааст.

Функсияҳои mktime() ва localtime() бо ҳам зич алоқаманданд. Ин пораи код инро равшан нишон медиҳад. Биёед ба он назар андозем, то амиқтар фаҳмем, ки он чӣ гуна кор мекунад. 

вақти воридот

сония = 1575721830

# вақти сохторро бар мегардонад

t = вақт.вақти маҳаллӣ (сония)

чоп («t1: «, t)

# сонияҳоро аз struct_time бармегардонад

s = вақт.mktime(t)

чоп ("ns:", сония)

Мо мебинем, ки тағирёбанда сония аз давра 1575721830 сония таъин шудааст. Аввалан, барнома сана, вақт ва дигар параметрҳоро мегирад, дар асоси ин арзиш онро ба тағирёбанда гузоред t, ва сипас мундариҷаи онро ба тағирёбанда табдил медиҳад s.

Пас аз он, сатри навро пахш мекунад ва шумораи сонияҳоро дар консол нишон медиҳад. Шумо метавонед санҷед, ки он ҳамон рақамест, ки ба тағирёбандаи сонияҳо таъин шудааст.

Санаи баромад аз 9 рақаме, ки ба struct_time ишора мекунанд

Фарз мекунем, ки мо 9 рақам дорем, ки сол, моҳ, сана, рӯзи ҳафта ва як қатор арзишҳои дигарро ифода мекунанд ва мо бояд онҳоро дар як сатр муттаҳид кунем. Барои ин, функсия истифода мешавад asctime (). Вай қабул мекунад ё омода аст сохтор_вақт, ё ягон навори дигари 9 арзише, ки ба ҳамин монанд аст. Пас аз он, сатр баргардонида мешавад, ки сана, вақт ва як қатор параметрҳои дигар аст. 

Истифодаи ин усул хеле қулай аст, то маълумотҳои аз ҷониби корбар муайяншуда ба як тағирёбанда оварда шаванд..

Масалан, он метавонад барномае бошад, ки дар он корбар дар алоҳидагӣ рӯз, моҳ, сол, рӯзи ҳафта ва дигар маълумотро дар бораи бақайдгирии ҳодиса муайян мекунад. Баъд аз ин, маълумоти гирифташуда ба базаи маълумот ворид карда мешавад ва сипас ба шахси дигаре, ки онро дархост мекунад, дода мешавад.

Гирифтани вақт ва сана дар асоси сатри Python

Фарз мекунем, ки корбар маълумоти нобаробарро муайян кардааст ва мо бояд онҳоро ба як сатр дар формате, ки шахс ворид кардааст, муттаҳид кунем ва сипас ба тағирёбандаи дигар нусхабардорӣ кунем ва онро ба формати стандартӣ дар он ҷо барқарор кунем. Барои ин, функсия истифода мешавад time.strptime ().

Он тағирёбандаеро мегирад, ки дар он ин арзиш нишон дода шудааст ва он чизеро, ки аллакай ба мо шинос аст, бармегардонад сохтор_вақт.

Барои равшанӣ мо чунин барномаро менависем.

вақти воридот

time_string = "15 июни соли 2019"

натиҷа = 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)

Ба ибораи дигар, кор бо санаҳо ва вақтҳо дар Python умуман душвор нест. Ба ин дастурҳо риоя кардан кифоя аст ва ҳама чиз кор хоҳад кард. Истифодаи Китобхона замон истифодабаранда барои кор бо вақт шумораи зиёди имкониятҳоро ба даст меорад, ба монанди:

  1. Иҷрои барномаро барои муддати муайян боздошта.
  2. Вақтеро, ки аз давра гузаштааст, бо сонияҳо нишон диҳед. Ин маълумот метавонад барои ҷамъбасти вақт ё иҷрои дигар амалҳои математикӣ дар он истифода шавад.
  3. Ба формати қулай табдил диҳед. Ғайр аз он, худи барномасоз метавонад муайян кунад, ки кадом элементҳо ва бо кадом пайдарпай намоиш дода мешаванд. 

Як катор имкониятхои дигар низ хастанд, вале имруз мо асоситаринро тахлил кардем. Онҳо қариб дар ҳама гуна барномаҳое, ки бо мурури замон кор мекунанд, муфид хоҳанд буд. Барори кор.

Дин ва мазҳаб