Python, okunabilirliği, sadeliği ve çok yönlülüğü ile bilinen yüksek seviyeli, yorumlanan bir programlama dilidir. Guido van Rossum tarafından yaratılan Python, ilk olarak 1991 yılında piyasaya sürülmüştür ve prosedürel, nesne yönelimli ve fonksiyonel programlama dahil olmak üzere birden fazla programlama paradigmasını destekler. Söz dizimi, hem yeni başlayanların hem de deneyimli geliştiricilerin temiz ve sürdürülebilir kod yazmasını sağlayacak şekilde net ve sezgisel olacak şekilde tasarlanmıştır. Python'un kapsamlı standart kütüphanesi ve büyük üçüncü taraf paketleri ekosistemi, onu web geliştirme, veri analizi, yapay zeka ve bilimsel hesaplama gibi çeşitli uygulamalar için tercih edilen bir seçenek haline getirir.
Python, 1980'lerin sonlarında ABC programlama dilinin bir halef olarak tasarlandı. Guido van Rossum, Noel tatilinde üzerinde çalışmaya başladı ve programlama ile kullanılabilirlik arasındaki boşluğu kapatacak bir dil olmasını amaçladı; ABC'nin birçok özelliğini içermekle birlikte, istisna yönetimi ve fonksiyonlar için ek destek sağladı. İlk versiyon olan Python 0.9.0, Şubat 1991'de piyasaya sürüldü ve miras alma, temel veri türleri ve istisna yönetimi gibi temel özellikleri sergiledi.
Python, öğrenmesi kolay söz dizimi ve çok yönlülüğü sayesinde programlama topluluğunda hızla popülerlik kazandı. 2000 yılında piyasaya sürülen Python 2.0, liste anlama ve çöp toplama gibi önemli yeni özellikler tanıttı. 2008'de piyasaya sürülen Python 3.0, içsel tasarım hatalarını düzeltmeyi ve netliği artırmayı amaçladı, ancak Python 2.x ile geriye dönük uyumlu değildi. Bu durum, iki versiyon arasında bir birlikte var olma dönemine yol açtı, ancak Python 2, Ocak 2020'de sonlandırıldı ve geliştiricilerin tamamen Python 3.x'e geçiş yapmalarını sağladı.
Python'un mevcut durumu, çeşitli alanlarda yaygın benimsenmesini yansıtmaktadır. Web geliştirme (Django, Flask), veri bilimi (Pandas, NumPy, SciPy), makine öğrenimi (TensorFlow, scikit-learn) ve betik yazımı gibi alanlarda yoğun bir şekilde kullanılmaktadır. Python'un zengin ekosistemi, geniş topluluk desteği ve sürekli güncellemeleri, yeteneklerini artırmaya devam etmekte ve onu programlama dilleri dünyasında güncel tutmaktadır.
Python'un en belirgin özelliklerinden biri okunabilirliğe verdiği önemdir. Kod genellikle sade İngilizceye benzer, bu da geliştiricilerin anlamasını ve bakımını kolaylaştırır. Örneğin, parantez veya noktalı virgül kullanmak yerine, Python kod bloklarını tanımlamak için girintiyi kullanır:
if x > 0:
print("Pozitif")
else:
print("Pozitif değil")
Python, dinamik türleme kullanır; bu, değişken türlerinin çalışma zamanında belirlendiği anlamına gelir. Geliştiricilerin değişken türlerini açıkça bildirmesi gerekmez:
number = 42 # Bu bir tam sayıdır
number = "Merhaba" # Artık bir dizedir
Python'daki fonksiyonlar birinci sınıf nesnelerdir; bu, onların argüman olarak geçilebileceği, diğer fonksiyonlardan döndürülebileceği ve değişkenlere atanabileceği anlamına gelir:
def greet(name):
return f"Merhaba, {name}"
def apply_function(func, value):
return func(value)
print(apply_function(greet, "Dünya")) # Çıktı: Merhaba, Dünya
Python, mevcut listelerden liste oluşturmanın özlü bir yolunu sunan liste anlamalarını destekler:
kareler = [x**2 for x in range(10)]
print(kareler) # Çıktı: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Python, hata yönetimini geliştiren try ve except bloklarını kullanarak sağlam bir istisna yönetim modeli içerir:
try:
result = 10 / 0
except ZeroDivisionError:
print("Sıfıra bölünemez")
Python, veri ve yöntemlerin kapsüllenmesini sağlayan sınıflar ve miras ile nesne yönelimli programlamayı tam olarak destekler:
class Animal:
def speak(self):
return "Ses"
class Dog(Animal):
def speak(self):
return "Hav"
dog = Dog()
print(dog.speak()) # Çıktı: Hav
Python, geliştiricilerin kodu modüller ve paketler halinde düzenlemesine olanak tanır, bu da kodun yeniden kullanımını artırır:
# mymodule.py
def my_function():
return "Merhaba, Modül"
# main.py
import mymodule
print(mymodule.my_function()) # Çıktı: Merhaba, Modül
Python, fonksiyonları veya yöntemleri değiştirmeye olanak tanıyan dekoratörler içerir. Genellikle günlük kaydı, erişim kontrolü sağlama veya enstrümantasyon için kullanılır:
def decorator_function(original_function):
def wrapper_function():
print("Sarmalayıcı, {} öncesinde çalıştırıldı".format(original_function.__name__))
return original_function()
return wrapper_function
@decorator_function
def display():
return "Görüntü fonksiyonu çalıştırıldı"
print(display()) # Çıktı: Sarmalayıcı, display öncesinde çalıştırıldı /n Görüntü fonksiyonu çalıştırıldı
Üreticiler, yield
ifadesini kullanarak yineleyiciler oluşturmanın bellek açısından verimli bir yoludur ve dizilerin tembel değerlendirilmesine olanak tanır:
def countdown(num):
while num > 0:
yield num
num -= 1
for number in countdown(5):
print(number) # Çıktı: 5 4 3 2 1
Python, with
ifadesini kullanarak bağlam yöneticilerini destekler ve kaynakları etkili bir şekilde yönetmenin bir yolunu sağlar; bu, açık bir temizleme kodu gerektirmeden yapılır:
with open("file.txt") as file:
content = file.read()
print(content) # Blok sonlandıktan sonra dosyayı otomatik olarak kapatır
Python esasen bir yorumlanan dildir ve CPython (standart uygulama), PyPy (Just-In-Time derleyici) ve Jython (Java platformunda çalışan) gibi çeşitli yorumlayıcılara dayanır. Dil, komut satırı arayüzleri, web sunucuları ve entegre geliştirme ortamları dahil olmak üzere çeşitli ortamlarda çalıştırılabilir.
Birçok entegre geliştirme ortamı (IDE), Python geliştirmeyi destekler ve akıllı kod tamamlama, hata ayıklama araçları ve proje yönetimi gibi özellikler sunar. Popüler IDE'ler şunlardır:
Bir Python projesi oluşturmak için geliştiriciler genellikle bağımlılıkları yönetmek için sanal bir ortam kullanır. venv
modülü, bağımlılıkların sistem genelindeki Python kurulumunu etkilemeden yükleneceği izole ortamların oluşturulmasına olanak tanır.
python -m venv myenv
source myenv/bin/activate # Windows'ta `myenv\Scripts\activate` kullanın
pip install -r requirements.txt # Bağımlılıkları yükleyin
Python, aşağıdakiler de dahil olmak üzere çok çeşitli uygulamalarda kullanılmaktadır:
Python, kullanım ve paradigmalarına göre birkaç diğer programlama dili ile sıkça karşılaştırılır.
Python'dan diğer dillere kaynak-kaynağa çeviri yaparken, hedef dilin paradigmasını ve söz dizimini anlamak önemlidir. Bu amaçla çeşitli araçlar mevcuttur: