Ajamoodul Python 3-s. Peamised meetodid, mallid, näited

Peaaegu iga programm kasutab aega. Pythonis on selle jaoks välja töötatud eraldi raamatukogu – aegkasutatakse sellega mitmesuguste toimingute tegemiseks. Selle toimimiseks tuleb see kõigepealt koodi alguses deklareerida. Seda rida kasutatakse selleks:

impordiaeg

Vaatleme erinevaid võimalusi, kuidas seda moodulit praktikas õigesti kasutada. 

Epohhist möödunud sekundite arvu määramine

Selle ülesande täitmiseks on funktsioon aeg(), mis ei võta parameetreid. Selle tagastusväärtus on, mitu sekundit on möödunud 1. jaanuarist 1970. Pythonis nimetatakse seda aega epohhi alguseks. Vähemalt Unixi perekonna operatsioonisüsteemides.

Windowsi puhul on kuupäev sama, kuid probleeme võib esineda negatiivsete väärtustega, mis olid enne seda kuupäeva. 

Kasutatud ajavöönd on UTC.

impordiaeg

sekundid = aeg.aeg()

print ("Sekundeid ajastust =", sekundit)

Selle funktsiooni keerukus seisneb selles, et see ei näita täpselt kuupäeva, vaid ainult sekundite arvu. Kõigile tuttavasse vormingusse teisendamiseks peate kasutama täpset teavet. Selleks kasutatakse funktsiooni aeg.ctime().

Kuupäeva, kellaaja tagastamine tavalises vormingus

Aja tagastamiseks tavalises vormingus on meetod aeg.ctime(). Sulgudes on märgitud muutuja või arv, mis näitab epohhi algusest möödunud sekundite arvu. See meetod tagastab kõik kuupäeva ja kellaaja omadused, sealhulgas kuupäeva, aasta, tundide arvu, minutid, sekundid ja nädalapäeva.

Seda funktsiooni saab kasutada ka argumentideta. Sel juhul tagastab see praeguse kuupäeva, kellaaja jne.

Siin on koodilõik, mis seda demonstreerib.

impordiaeg

print(time.ctime())

T 23. oktoober 10:18:23 2018

Viimane rida on see, mis prinditakse konsooli, kus töötab Pythoni tõlk. Meetod vormindab saadud sekundite arvu automaatselt kasutajale tuttavaks vormiks. Tõsi, kõiki ülalkirjeldatud elemente kasutatakse harva. Reeglina peate saama ainult kellaaja või ainult tänase kuupäeva. Selleks kasutatakse eraldi funktsiooni – strftime(). Kuid enne selle kaalumist peame klassi analüüsima time.struct_time.

klassi aeg.struktuuri_aeg

See on argumentide kategooria, mida saab aktsepteerida erinevate meetoditega. Sellel pole valikuid. See on nimelise liidesega korteež. Lihtsamalt öeldes on selle klassi elementidele juurdepääs nii nime kui ka indeksi numbri järgi.

See koosneb järgmistest atribuutidest.Ajamoodul Python 3-s. Peamised meetodid, mallid, näited

Tähelepanu! Erinevalt paljudest teistest programmeerimiskeeltest võib siin kuu varieeruda vahemikus 1 kuni 12, mitte nullist 11ni.

Konkreetse vormingu tagastamine

Funktsiooni kasutamine strftime() aasta, kuu, päeva, tunni, minuti, sekundi saate eraldi hankida ja need tekstistringiks tagastada. Seejärel saab selle funktsiooni abil kasutajale printida printida () või muul viisil töödeldud.

Argumendina võib funktsioon võtta mis tahes muutuja, mis võtab selle mooduli teiste funktsioonide tagastatud väärtuse. Näiteks saab sinna kanda kohaliku aja (sellest tuleb juttu hiljem), kust ta vajalikud andmed välja tõmbab.

Siin on koodilõik, kus me seda teeme.

impordiaeg

named_tuple = aeg.localtime() # hangi struct_time

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

print(time_string)

Kui käivitate selle koodi, kuvatakse praegune kuupäev ja kellaaeg. Elementide vormingut ja järjestust saab muuta. Need on järgmised:

  1. %Y on aasta.
  2. %m on kuu.
  3. %d – päev.
  4. %H – aeg.
  5. %M – minutit.
  6. %S – teine.

Sellest lähtuvalt saate teha nii, et väljund oleks ainult kuu ja päev. Selleks pole lihtsalt vaja aastaarvu kuvamiseks käsku anda. See tähendab, et kirjuta ülaltoodud valemisse argumendina %m/%d ja ongi kõik. Või vastupidi, %d/%m. 

Tegelikult on stringiliteraalide arv palju suurem. Siin on tabel, kus neid on üksikasjalikult kirjeldatud.Ajamoodul Python 3-s. Peamised meetodid, mallid, näited

Lükake lõime teatud arvu sekundite võrra edasi

Selleks kasutatakse funktsiooni magama (). Üsna suur programmeerimisülesannete plokk on seotud aja möödumisega. Mõnikord peate järgmise sammu teatud aja võrra edasi lükkama. Näiteks kui teil on vaja suhelda andmebaasiga, mille töötlemiseks kulub teatud aeg.

Argumendina kasutab meetod väärtust, mis väljendab sekundite arvu algoritmi järgmise sammu edasilükkamiseks.

Näiteks selles katkendis on viivitus 10 sekundit.

impordiaeg

paus = 10

print ("Programm algas...")

aeg.uni (paus)

print(str(paus) + » sekundit möödas.»)

Selle tulemusena saame selle:

Programm algas…

Möödus 10 sekundit.

Nagu väljundist näeme, teatab programm esmalt, et see on käivitunud. Ja kümne sekundi pärast kirjutas ta, et see aeg on möödas.

Funktsioon võimaldab määrata pausi kestuse millisekundites. Selleks kasutame funktsiooni argumendi murdosa väärtusi magada. Näiteks 0,1. See tähendab, et viivitus on 100 millisekundit.

Hangi kohalik aeg

Funktsiooni localtime() abil saab programm sekundite arvu ajastu algusest teatud ajavööndis. 

Toome selguse huvides näidiskoodi.

impordiaeg

tulemus = aeg.localtime(1575721830)

print("tulemus:", tulemus)

print(«nгод:», result.tm_year)

print(«tm_tund:», tulemus.tm_tund)

Tagastab struct_time UTC-s, võttes aluseks sekundite arvu alates ajastust

See ülesanne saavutatakse time.gmtime() abil. meetod. See on selgem, kui toome näite.

impordiaeg

tulemus = time.gmtime(1575721830)

print("tulemus:", tulemus)

print(«nгод:», result.tm_year)

print(«tm_tund:», tulemus.tm_tund)

Kui lülitate selle toimingute jada sisse, kuvatakse aja, aasta ja ajavööndiga seotud elementide komplekt.

Tagastab epohhi algusest möödunud sekundite arvu automaatse teisendamisega kohalikule ajale

Kui seisate silmitsi sellise ülesandega, rakendatakse seda meetodi abil mktime(), mis võtab struct_time. Pärast seda täidab see funktsiooni pöördtoimingu kohalik aeg(). See tähendab, et see teisendab kohaliku ajavööndi järgi aja sekundite arvuks, mis on möödunud ajastu algusest, kohandades seda ajavööndi järgi.

Funktsioonid mktime() ja localtime() on omavahel tihedalt läbi põimunud. See koodilõik näitab seda selgelt. Vaatame seda, et sügavamalt mõista, kuidas see toimib. 

impordiaeg

sekundit = 1575721830

# tagastab struct_time

t = aeg.kohalik aeg (sekundites)

print(«t1: «, t)

# tagastab sekundid väärtusest struct_time

s = aeg.mktime(t)

print(«ns:», sekundid)

Näeme, et muutuja sekundit ajastule on määratud 1575721830 sekundit. Esiteks saab programm täpse kuupäeva, kellaaja ja muud parameetrid, selle väärtuse põhjal pane see muutujasse tja teisendab seejärel selle sisu muutujaks s.

Pärast seda lööb välja uue rea ja kuvab konsoolis sekundite arvu. Saate kontrollida, kas see on sama number, mis määrati sekundimuutujale.

Väljundkuupäev alates 9 numbrist, mis viitavad struct_time

Oletame, et meil on 9 numbrit, mis tähistavad aastat, kuud, kuupäeva, nädalapäeva ja mitmeid muid väärtusi, ning me peame need üheks stringiks ühendama. Selleks kasutatakse funktsiooni asctime(). Ta nõustub või on valmis struct_time, või mis tahes muu 9 väärtusega korrutis, mis tähistab sama. Pärast seda tagastatakse string, mis on kuupäev, kellaaeg ja mitmed muud parameetrid. 

Seda meetodit on väga mugav kasutada selleks, et tuua erinevad kasutaja määratud andmed ühte muutujasse..

Näiteks võib see olla programm, kus kasutaja määrab eraldi päeva, kuu, aasta, nädalapäeva ja muud sündmusele registreerumise andmed. Pärast seda sisestatakse saadud teave andmebaasi ja väljastatakse seejärel teisele isikule, kes seda nõuab.

Kellaaja ja kuupäeva hankimine Pythoni stringi põhjal

Oletame, et kasutaja on määranud erinevad andmed ja me peame ühendama need ühele reale inimese sisestatud vormingus ning seejärel tegema koopia teise muutujasse ja ehitama need seal uuesti standardvormingusse. Selleks kasutatakse funktsiooni time.strptime().

See võtab muutuja, milles see väärtus on määratud, ja tagastab meile juba tuttava struct_time.

Selguse huvides kirjutame sellise programmi.

impordiaeg

time_string = «15. juuni 2019»

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

print (tulemus)

Arva ära, mis väljund saab olema? Proovige arvata, ilma et oleksite alumist rida vaatama. Ja siis kontrolli vastust.

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)

Ühesõnaga, Pythonis pole kuupäevade ja kellaaegadega töötamine üldse keeruline. Piisab nende juhiste järgimisest ja kõik saab korda. Raamatukogu kasutamine aeg kasutaja saab ajaga töötamiseks tohutul hulgal võimalusi, näiteks:

  1. Peatage programmi täitmine teatud ajaks.
  2. Näidake ajastust möödunud aega sekundites. Seda teavet saab kasutada aja kokkuvõtmiseks või sellega muude matemaatiliste toimingute tegemiseks.
  3. Teisendage mugavasse vormingusse. Lisaks saab programmeerija ise määrata, milliseid elemente ja millises järjestuses kuvatakse. 

Samuti on mitmeid muid võimalusi, kuid täna oleme analüüsinud kõige elementaarsemaid. Need tulevad kasuks peaaegu kõigis programmides, mis kuidagi aja jooksul töötavad. Edu.

Jäta vastus