Modüller | time

time isimli bu modülümüz, isminden de anlayacağınız üzere zaman ile alakalı kontrolleri yapabilmemize olanak tanıyor. Ancak bu yazıda bu modülün 3 adet fonksiyonunu göstereceğim çünkü diğer fonksiyonları kullanacağınızı düşünmüyorum.

NOT: Modüllerdeki her fonksiyon işinize yaramak zorunda değildir. Bazı fonksiyonlar gerçekten özel bir alana hitap ediyor olabilir.

Her şeyden önce isterseniz bunu projemize dahil edelim.

time.time()

Bir modülün içerisindeki fonksiyonlara erişmek için modülün isminin hemen yanına nokta koyduğumuzu artık biliyorsunuz. Bu yüzden ilk önce time. ifadesini veriyorum ve time() ifadesini yerleştiriyorum. Ancak bunu, bir değişkene atamak istiyorum.

Saçma sapan bir sayı çıktığını görüyoruz. Programlama camiasında zaman, 1 Ocak 1970 tarihinden itibaren alınmaktadır. time.time() dediğimiz zaman karşımıza çıkan bu sayı, 1970 yılından günümüze kadar geçen zamanın saniye cinsinden değeridir. Bunu, arka arkaya birkaç defa çalıştırırsanız bu değerin sürekli arttığını göreceksiniz.

Peki, bu saçmalık bizim ne işimize yarayacak? Örneğin elinizde birden fazla algoritma var ve bu algoritmalardan hangisinin daha hızlı çalıştığını öğrenmek istiyorsunuz. O zaman şu tarz bir test oluşturalım:

myList = [] şeklinde boş bir liste oluşturdum. Sonrasında start isimli bir değişken oluşturdum ve buna, şu anki zamanın saniye cinsinden değerini atadım. Hemen sonrasında bir for döngüsü ile 1'den 999.999'a kadar olan sayıları o listeye ekledim.

end değişkeni ile de yine şu anki zamanı tuttum. Bu zaman sürekli ilerliyor, öyle değil mi? Dolayısıyla bitiş (end) ve başlangıç (start) değerlerini birbirinden çıkarırsam bu programın kaç saniyede çalıştığını görebilirim. Bu yüzden total = end - start şeklinde bir denklem kurdum ve bunu yazdırdım.

Gördüğünüz üzere bu programın çalışıp bitmesi 11 salisede gerçekleşmiş.

Bu sefer for döngüsü içerisindeki değeri küçülttüm ve yine doğru bir sonuç aldım. Programın bitişi daha kısa zaman aldı. İşte, boş bir fonksiyon gibi görünen time.time() bu kadar işlevli bir hâle gelebiliyor.

time.sleep()

Yine isminden de anlayacağınız üzere sleep(), programı istenen saniye kadar duraklatan bir fonksiyondur. Saniye bazında çalışır yani parantezler arasına saniye cinsinden bir değer girmeniz gerekir.

counter = 3 şeklinde bir sayaç oluşturdum. Sonrasında sonsuz bir döngü açtım ve sayacı ekrana yazdırdıktan sonra time.sleep(1) ifadesi ile programı 1 saniyeliğine durdurdum. Program 1 saniye bekledikten sonra sayaç değerini bir azalttım ve bunun bu şekilde sürmesini istedim. Sayaç sıfır ise ekrana 'GO!' yazdırdım ve döngüyü sonlandırdım.

Bu modül de çok manasız gelebilir ama inanın bana oldukça fazla kullanacağınız yerler olacak.

NOT: GoLang'e selamlar.

time.strftime()

Muhtemelen bunu da çok sık kullanmanız gerekecek. İlk önce terminal ekranına help(time.strftime) diyelim ve ne işe yaradığını net bir şekilde görelim.

Gördüğünüz gibi çeşitli formatlama işlemleri mevcut. strftime ifadesi de 'string format time' anlamına gelir. Demek ki biz, bu modülü kullanarak tarihi/zamanı dilediğimiz gibi şekillendirebiliriz.

Açıklamalara baktığımız zaman örneğin %Y ifadesinin (year) yıl değerini verdiğini; %m ifadesinin (month) ay değerini verdiğini; %d ifadesinin (day) ise gün değerini verdiğini görüyoruz. Bunları kullanalım ama dikkat etmemiz gereken bir nokta var. Bunlar 'string format time'. Yani bu ifadeleri tırnak içerisine yazmamız gerekiyor. Hemen bakalım.

Gün/Ay/Yıl şeklinde bir çıktı görüyoruz. Elbette bunları istediğiniz sırada yazabilir ve aralarında bulunan sembolleri değiştirebilirsiniz; orası size kalmış.

İsterseniz saati de yazdıralım. Bunun için ihtiyacımız olan şeyler; %H (hour - saat), %M (minute - dakika) ve %S (second - saniye) şeklinde.

Gerçekten de şu an gecenin 3'ü :). Bu arada aralarına iki nokta üst üste değil, nokta koyuyorum çünkü doğrusu bu. Siz de öyle kullanın efendim.

Son olarak AM (Ante Meridiem / Öğleden Önce) - PM (Post Meridiem / Öğleden Sonra) kullanımı yapalım. Bu noktada bilmeyenler için şunu söyleyebilirim ki; gece yarısı 00.00 ile öğle vakti 12.00 arası AM ile ifade edilirken öğle vakti 12.00 ile gece yarısı 00.00 arası PM ile ifade edilir.

Bu kullanım için %H ifadesini %I ile değiştirdim çünkü %H ifadesi 24 saatlik zaman dilimini kapsarken %I ifadesi 12 saatlik zaman dilimini kapsar. Gördüğünüz gibi şu an AM olarak gösteriyor. Bu kodu öğlen 12'den sonra ve gece 12'den önce çalıştırırsanız PM olduğunu göreceksinizdir.


Yayınlanma Tarihi: 2022-11-24 00:10:41

Son Düzenleme Tarihi: 2022-11-25 18:29:33