09-02-2025 Saat 22:31
Python bir modüler programlama dili.
Python'da modüller birer yapı taşı görevi üstlenir. Duvar örmek için kullanılan birer tuğlaya benzetebiliriz. Bunun nasıl işlediğini anlayabilmek için, önce kendimiz bir Modül yazalım ve
programımız içinde kullanalım.
Modül: matematik.py
Modülümüzü inceleyelim.
İlk satırdaki yıldızlı bölüm bize isimlendirmelerimizde Türkçe karakterler kullanabilmemize
olanak tanır. Mecburi değil ve Python3 serisinde bu mümkün. Python2 serisinde isimlendirmelerde
Türkçe'ye özel karakterler hata olarak görülür.
Sonraki satır bloğunda üçlü çift tırnaklar içinde yazanlar bilgi satırı olarak geçer. Ancak üçlü çift (tek
de kullanılabilir ama hepsi aynı türden olmalı) tırnaklar dokümantasyon olarak geçer. Ve Python
derleyicisi o satırları yardım bölümü içinde gösterebilir.
Sonraki bölümler Fonksiyonlardan oluşuyor ve bu Fonksiyonlar başka programlar içerisinden
çağrılabilir ve kullanılabilir. Fonksiyonların da kendi ayrı dokümantasyon bölümleri var. Bunun sebebi
genel yardım bölümü sışında da Fonksiyon ile ilgili yardım görüntükenebilir.
Python'da bloklar, girintiler ile görselleştirilir ve derleyici bu girintileri dikkate alır. Bu girintiler "TAB"
değil kesinlikle. Birer boş (kaydırma) sütun. Windows'ta Notdefteri kullanarak yazarsanız kodlarınızı
TAB yerine sağ OK kullanın. Veya Python betiği için ayarları mevcut olan bir programcı editörü tercih edin. Çünkü Python görünmez karakterleri de okur ve değerlendirir.
Şimdi modülümüzü bir program içinden kullananalım ve deneyelim.
Örnek: hesapla.py
Programımızı inceleyelim.
İlk satırımız modülümüzü içe aktarır. "import" ve modülümüzün adı uzantısı hariç.
Pyton ile programlarımızı çalıştırırken dosya adı ve uzantısını (.py) yazıyoruz. Ancak modül
olarak programımıza akrarırken uzantı yazmıyoruz. Modülümüz içindeki metodları kullanırken de
modül adı artı, bir nokta ile birleştirerek kullanacağımız metod adını yazıyoruz. Ve parametre
gerekiyorsa, onları da giriyoruz.
Modülümüz ve programımız aynı dizin içinde değillerse, dosya yolunu da modül adının önüne
eklememiz gerekir.
Modül içeriğindeki metodları farklı şekillerde de kullanabiliriz. Yeni bir örnek.
Örnek: toplama.py
Bu örneğimizde sadece bir metodu kullanıyoruz ve bir den fazla toplama işlemi yapıyoruz.
Bunun için de bir döngü kullanıyoruz. Bu örnekteki döngü 10 giriş alıp toplama ekleyebiliyor.
Sadece bir işlevi kullanacaksak, sadece o işlevi yalnız olarak ta içe aktarabiliriz. Bunun için
biraz farklı bir yöntem kullanabiliriz.
Örnek: tıolama.py (V2)
Bu örnekte "matematik" modülümüzden sadece "Topla" metodunu içe aktarıyoruz. Bu şekilde
kullandığımızda diğer metodlar erişim dışı kalıyor. Modülün kendisi de tanınmıyor. Bu nedenle
işlemimizde "Topla()" olarak kullanıyoruz. matematik.Topla olarak kullanmaya kalkarsak hata alırız.
Modülümüzü Python konsolu üzerinden de canlı olarak kullanabiliriz.
Bu yapabilmek için Python konsolunu modülümüzün bulunduğu dizin içinden açıyoruz.
Yukarıdakine benzer bir konsol açılacak. Sürümüne vekullandığınız işletim sistemine göre yazanlar biraz farklı olacaktır.
Modülümüzü içe aktarmak için yine
yazıyoruz.
Modülümüz hangi metodları içeriyor? bilmiyorsak
Komutunu girerek yardım bölümüne (dokümantasyana) ulaşıyoruz.
Yardım bölümünden çıkıp, tekrar Python'a dönmek için "q" veya "quit" komutunu (tırnaklar
hariç) yazıyoruz ve Python konsoluna geri dönüyoruz.
Sadece bir metod hakkında bilgi edinmek istersek (Bazen uzun bir yazı dizisi çıkabiliyor)
Komutunu giriyoruz, ve sadece Topla() Fonksiyonu ile ilgili olan bölüm karşımıza çıkıyor.
Python bir çok dahili modül ile birlikte kuruluyor. Bunlar programımız ile aynı dizinde bulunmasa da,
Python kurulumunun bulunduğu yerde vaesayılan bir dizinde bulunuyor. Modüllerin isimlerini ve
ne işlemler için kullanılabileceklerini biliyorsak, kendi modülümüzde olduğu gibi (Dosya yolu
eklemeden) programımıza ekleyebiliyoruz.
Yine aynı şekilde (yukarıda anlattığım gibi) yardım bölümlerine erişebiliyoruz. Modüller bazen
derlenmiş de olabiliyor. O zaman editör ile açma ve içeriğini okuma imkânımız olmuyor. Ancak
derlenmiş modüller daha hızlı çalışıyor. Büyük boyutlu programlar için önemli bir durum.
Derlenmiş modüllerin uzantısı da farklı. Meselâ matematik.pyc olurdu bizim durumumuzda.
Derlenmiş modüllerin en kötü yanı, hangi sürüm ile derlenmişse, sadece o sürüm tarafından
tanınıyor olmaları. Python 3.12 sürümünde derlenmiş bir modül, Python 3.13 sürümünde çalışmaz.
Scriptlerde (Betik) böyle bir tanıyamam sorunu olmuyor. Veya badiren va daha çok ana sürümler
arası olabilir.
İlginiz için teşekkürler.
Python'da modüller birer yapı taşı görevi üstlenir. Duvar örmek için kullanılan birer tuğlaya benzetebiliriz. Bunun nasıl işlediğini anlayabilmek için, önce kendimiz bir Modül yazalım ve
programımız içinde kullanalım.
Modül: matematik.py
Kod:
# -*- coding: UTF-8 -*-
""" Matematik modülü
Basit aritmetik hesaplamalar için Fonksiyon'lar sunar. """
def Topla(x,y):
""" Topla() ve parantezler içine ve virgül ile ayrılmış girilen
iki rakamın toplamını hesaplar. Örnek: Topla(12,24) """
print(x," artı ",y," = ",x+y)
def Çıkar(x,y):
""" Çıkar() ve parantezler içine ve bir virgül ile ayrılmış girilen
iki rakamın, ilkinden ikincisinin çıkarılmış değerini hesaplar.
Örnek: Çıkar(24,12) """
print(x," eksi ",y," = ", x-y)
def Çarp(x,y):
""" Çarp() ve parantezler içine ve bir virgül ile ayrılmış girilen
iki rakamın, ilkininikincisi katını hesaplar. Örnek: Çarp(4,5) """
print(x," çarpı ",y," = ",x*y)
def Böl(x,y):
""" Böl() ve parantezler içine ve bir virgül ile ayrılmış girilen
iki rakamın, ilkinin ikincisine bölünmüş değerini hesaplar.
Örnek: Böl(12,4) """
print(x," bölü ",y," = ",x/y)
Modülümüzü inceleyelim.
İlk satırdaki yıldızlı bölüm bize isimlendirmelerimizde Türkçe karakterler kullanabilmemize
olanak tanır. Mecburi değil ve Python3 serisinde bu mümkün. Python2 serisinde isimlendirmelerde
Türkçe'ye özel karakterler hata olarak görülür.
Sonraki satır bloğunda üçlü çift tırnaklar içinde yazanlar bilgi satırı olarak geçer. Ancak üçlü çift (tek
de kullanılabilir ama hepsi aynı türden olmalı) tırnaklar dokümantasyon olarak geçer. Ve Python
derleyicisi o satırları yardım bölümü içinde gösterebilir.
Sonraki bölümler Fonksiyonlardan oluşuyor ve bu Fonksiyonlar başka programlar içerisinden
çağrılabilir ve kullanılabilir. Fonksiyonların da kendi ayrı dokümantasyon bölümleri var. Bunun sebebi
genel yardım bölümü sışında da Fonksiyon ile ilgili yardım görüntükenebilir.
Python'da bloklar, girintiler ile görselleştirilir ve derleyici bu girintileri dikkate alır. Bu girintiler "TAB"
değil kesinlikle. Birer boş (kaydırma) sütun. Windows'ta Notdefteri kullanarak yazarsanız kodlarınızı
TAB yerine sağ OK kullanın. Veya Python betiği için ayarları mevcut olan bir programcı editörü tercih edin. Çünkü Python görünmez karakterleri de okur ve değerlendirir.
Şimdi modülümüzü bir program içinden kullananalım ve deneyelim.
Örnek: hesapla.py
Kod:
import matematik
matematik.Böl(12,4)
matematik.Çarp(12,4)
matematik.Topla(12,4)
matematik.Çıkar(12,4)
Programımızı inceleyelim.
İlk satırımız modülümüzü içe aktarır. "import" ve modülümüzün adı uzantısı hariç.
Pyton ile programlarımızı çalıştırırken dosya adı ve uzantısını (.py) yazıyoruz. Ancak modül
olarak programımıza akrarırken uzantı yazmıyoruz. Modülümüz içindeki metodları kullanırken de
modül adı artı, bir nokta ile birleştirerek kullanacağımız metod adını yazıyoruz. Ve parametre
gerekiyorsa, onları da giriyoruz.
Modülümüz ve programımız aynı dizin içinde değillerse, dosya yolunu da modül adının önüne
eklememiz gerekir.
Modül içeriğindeki metodları farklı şekillerde de kullanabiliriz. Yeni bir örnek.
Örnek: toplama.py
Kod:
import matematik
print("Toplama işlemi")
print("")
ilkRakam = 0
for Rakam in range(10):
yeniRakam = float(input("Toplanacak rakamı gir : "))
matematik.Topla(ilkRakam,yeniRakam)
ilkRakam = ilkRakam + yeniRakam
Bu örneğimizde sadece bir metodu kullanıyoruz ve bir den fazla toplama işlemi yapıyoruz.
Bunun için de bir döngü kullanıyoruz. Bu örnekteki döngü 10 giriş alıp toplama ekleyebiliyor.
Sadece bir işlevi kullanacaksak, sadece o işlevi yalnız olarak ta içe aktarabiliriz. Bunun için
biraz farklı bir yöntem kullanabiliriz.
Örnek: tıolama.py (V2)
Kod:
from matematik import Topla
print("Toplama işlemi")
print("")
ilkRakam = 0
for Rakam in range(10):
yeniRakam = float(input("Toplanacak rakamı gir : "))
Topla(ilkRakam,yeniRakam)
ilkRakam = ilkRakam + yeniRakam
Bu örnekte "matematik" modülümüzden sadece "Topla" metodunu içe aktarıyoruz. Bu şekilde
kullandığımızda diğer metodlar erişim dışı kalıyor. Modülün kendisi de tanınmıyor. Bu nedenle
işlemimizde "Topla()" olarak kullanıyoruz. matematik.Topla olarak kullanmaya kalkarsak hata alırız.
Modülümüzü Python konsolu üzerinden de canlı olarak kullanabiliriz.
Bu yapabilmek için Python konsolunu modülümüzün bulunduğu dizin içinden açıyoruz.
Kod:
Python 3.9.19 (main, Mar 20 2024, 15:20:42)
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Modülümüzü içe aktarmak için yine
Kod:
import matematik
Modülümüz hangi metodları içeriyor? bilmiyorsak
Kod:
help(matematik)
Yardım bölümünden çıkıp, tekrar Python'a dönmek için "q" veya "quit" komutunu (tırnaklar
hariç) yazıyoruz ve Python konsoluna geri dönüyoruz.
Sadece bir metod hakkında bilgi edinmek istersek (Bazen uzun bir yazı dizisi çıkabiliyor)
Kod:
help(matematik.Topla)
Python bir çok dahili modül ile birlikte kuruluyor. Bunlar programımız ile aynı dizinde bulunmasa da,
Python kurulumunun bulunduğu yerde vaesayılan bir dizinde bulunuyor. Modüllerin isimlerini ve
ne işlemler için kullanılabileceklerini biliyorsak, kendi modülümüzde olduğu gibi (Dosya yolu
eklemeden) programımıza ekleyebiliyoruz.
Yine aynı şekilde (yukarıda anlattığım gibi) yardım bölümlerine erişebiliyoruz. Modüller bazen
derlenmiş de olabiliyor. O zaman editör ile açma ve içeriğini okuma imkânımız olmuyor. Ancak
derlenmiş modüller daha hızlı çalışıyor. Büyük boyutlu programlar için önemli bir durum.
Derlenmiş modüllerin uzantısı da farklı. Meselâ matematik.pyc olurdu bizim durumumuzda.
Derlenmiş modüllerin en kötü yanı, hangi sürüm ile derlenmişse, sadece o sürüm tarafından
tanınıyor olmaları. Python 3.12 sürümünde derlenmiş bir modül, Python 3.13 sürümünde çalışmaz.
Scriptlerde (Betik) böyle bir tanıyamam sorunu olmuyor. Veya badiren va daha çok ana sürümler
arası olabilir.
İlginiz için teşekkürler.