Bu bölüm için bir alıştırma ile başlayalım. Aşağıdaki kodu cal.py olarak adlandırın (kullanacağımız import
komutu calendar.py adlı bir dosya arar ve okur. Dosyayı calendar.py olarak adlandırırsak kendi kendisini okumaya çalışır.)
import calendar
yil = int(input("Bir yıl girin: "))
calendar.prcal(yil)
Çıktı:
Bir yıl girin: 2001
2001
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
29 30 31 26 27 28 26 27 28 29 30 31
(Çıktının bir kısmını atladım, ama sanırım fikri anladınız.) Peki program ne işe geliyor? İlk satır import calendar
yeni bir komut kullanır. import
komutu bir modül yükler (bu durumda calendar
modülü). Standart modüllerde kullanılabilen komutları görmek için python kitaplık başvurusuna bakabilirsiniz veya http://docs.python.org/3/library/ gidin. Calender modülünün belgelerine bakarsanız, bir yıl için takvim yazdıran prcal
adlı bir işlevi listeler. calendar.prcal(yil)
satırı bu işlevi kullanır. Özetle bir modül kullanmak için import
komutu, ve daha sonra bu modüldeki işlevler için kullanmak ise module_adi.fonksiyon
komutunu kullanırız. Programı yazmanın başka bir yolu da:
from calendar import prcal
yil = int(input("Bir yıl girin: "))
prcal(yil)
Bu sürüm bir modülden belirli bir işlevi alır.
Python Kitaplığı’nı kullanan başka bir program da aşağıdaki gibi olabilir (clock.py gibi bir isim verin) (programı sonlandırmak için aynı anda Ctrl ve ‘c’ tuşuna basın):
from time import time, ctime
onceki_zaman = ""
while True:
simdiki_zaman = ctime(time())
if onceki_zaman != simdiki_zaman:
print("Tarih ve saat:", ctime(time()))
onceki_zaman = simdiki_zaman
Çıktının bir kısmı:
Tarih ve saat: Sun Aug 20 13:40:04 2000
Tarih ve saat: Sun Aug 20 13:40:05 2000
Tarih ve saat: Sun Aug 20 13:40:06 2000
Tarih ve saat: Sun Aug 20 13:40:07 2000
Traceback (innermost last):
File "clock.py", line 5, in ?
the_time = ctime(time())
KeyboardInterrupt
Çıktı elbette sonsuza kadar devam edecekti, bu yüzden iptal ettim (veya çıktı en azından Ctrl + C basılana kadar devam eder). Program sadece sonsuz bir döngü yapıyor (True
her zaman doğrudur, bu yüzden while True
sonsuza kadar gider) ve her seferinde zamanın değişip değişmediğini kontrol edip değişmişse yazdırıyor. import
deyiminden sonra birden çok adın satırda nasıl kullanıldığına dikkat edin. from time import time, ctime
Python Kitaplığı birçok yararlı işlev içerir. Bu işlevler programlarınıza daha fazla yetenek verir ve birçoğu Python’da programlamayı basitleştirebilir.
Diğer modüller
Bazen Python kurulumuyla birlikte gelmeyen bir python modülü kullanmak istersiniz. Tabiki bunları da kullanabilirsiniz, ancak bilgisayarınızda yüklü olması gerekir.
Kendi modülünüzü oluşturma
Python import komutunu okuduğunda, önce dizininizdeki dosyaları, ardından site paketlerini veya önceden yüklenmiş modülleri denetler. Kendi modülünüzü oluşturmak için, geçerli dizinde bir .py dosyası oluşturmanız ve aşağıdaki komutu kullanmanız yeterlidir:
import module_adi
Bu komut, module.py dosyasını geçerli dizininizden ve bulunamazsa site paketlerinden ve önceden paketlenmiş modüllerden almaya çalışır.
Ancak, modülü aldığında, temelde dosyayı bir program olarak başlatır, böylece oradaki herhangi bir kod çalıştırılır. Dolayısıyla tüm kodu işlevler halinde gruplamak istersiniz.
__name__ == __main__ hilesi
Python’da __name__
değişkeni size programın geçerli adını verecektir. İçe aktardığınız bir modül __name__
değişkenini yazdırırsa, aslında modülün adını yazdırır. Geçerli dosya eğer __name__
değişkenini yazdırırsa program ana programın çalıştığını göstermek için __main__
yazdırır.
Bir If deyimi __name__
değişkenini denetler ve ana programın çalıştığını görürse, bir modül alındığında oluşturulan istemeden çalıştırma sorunu atlanabilir. Örneğin, herhangi bir kodu çalıştıran bir dosyanız olduğunu varsayın. Bu kod, ayrıca, başka bir programda kullanmak istediğiniz bir işleve de sahip olsun. Ancak, siz kodu çalıştırmak değil de, yalnızca işlevi almak isteyin. Bu şekilde kod sadece yazıldığı dosyadan başlatıldıysa çalıştırır, içe aktarılmışsa çalışmaz.
if __name__ == '__main__':
pass
Bu durumda, dosya çalıştırılırsa ancak içe alınmazsa, geçiş komutunu (pass) çalıştırır. Geçiş komutunu, içe aktarılmadığında çalıştırılmak istediğiniz kodla değiştirebilirsiniz. Kodu girintilemeyi unutmayın.
Pip modülü
Pip modülü, Python kurulumu ile birlikte gelen ve bir modül indiricisi / yöneticisi olarak hareket eden bir modüldür. Pip ile internetten diğer modülleri indirebilirsiniz.
Pip modülü python yorumlayıcısında kullanılmaz, ancak komut satırı boyunca çalıştırılır. Kullanmak için komut satırı yorumlayıcınızı açın (Windows için Komut İstemi, Mac/Linux için Terminal) ve aşağıdaki kodu yazın:
python -m pip install modul_adi
veya
pip install modul_adi
Bu, kullanıcı tarafından gönderilen python modülleri veritabanından istediğimiz modülü indirmeye ve yüklemeye çalışır. Pip kullanarak kurulum yapma ile ilgili daha detaylı okumayı buradan yapabilirsiniz. Pip ile ayrıca modül güncelleme de yapabiliriz.
Alıştırmalar
Kararlar bölümünde yazdığımız high_low.py
‘yi yeniden yazalım. Bu sefer sabit bir sayı yerine 0 ile 99 arasında bir sayı üretsin. Rastgele sayı üreten uygun bir modül bulmak ve kullanabileceğiniz işlevleri görmek için Python belgelerini kullanın.
Çözüm
from random import randint
number = randint(0, 99)
guess = -1
while guess != number:
guess = int(input ("Guess a number: "))
if guess > number:
print("Too high")
elif guess < number:
print("Too low")
print("Just right")