Python

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

Girintilere dayalı basit söz dizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır.

Modüler yapısı, sınıf dizgesini (sistem) ve her türlü veri alanı girişini destekler. Hemen hemen her türlü platformda çalışabilir (Unix, Linux, Mac, Windows, Amiga, Symbian). Python ile sistem programlama, kullanıcı arabirimi programlama, ağ programlama, web programlama, uygulama ve veritabanı yazılımı programlama gibi birçok alanda yazılım geliştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih edilir.

Python 1980'lerin sonunda ABC programlama diline alternatif olarak tasarlanmıştı. Python 2.0, ilk kez 2000 yılında yayınlandı. 2008'de yayınlanan Python 3.0, dilin önceki versiyonuyla tam uyumlu değildir ve Python 2.x'te yazılan kodların Python 3.x'te çalışması için değiştirilmesi gerekmektedir. Python 2 versiyonun resmi geliştirilme süreci, dilin son sürümü olan Python 2.7.x serisi versiyonların ardından 1 Ocak 2020 itibarıyla resmi olarak sona erdi. Python 2.x geliştirilme desteğinin sona ermesinin ardından, Python dilinin 3.7.x ve sonraki sürümlerinin geliştirilmesi devam etmektedir.

 Geçmiş 
küçükresim|Guido van Rossum
Geliştirilmeye 1990 yılında Guido van Rossum tarafından Amsterdam'da başlanmıştır. Adını sanılanın aksine bir yılandan değil Guido van Rossum'un çok sevdiği, Monty Python adlı altı kişilik bir İngiliz komedi grubunun Monty Python’s Flying Circus adlı gösterisinden almıştır. Günümüzde Python Yazılım Vakfı çevresinde toplanan gönüllülerin çabalarıyla sürdürülmektedir. Python 1.0 sürümüne Ocak 1994'te ulaşmıştır. 2.0 sürümü 16 Ekim 2000'de yayınlanmıştır. 3 Aralık 2008 tarihinden itibaren 3.x serisi yayınlanmaya başlamıştır; ancak 3.x serisi 2.x serisiyle uyumlu değildir.

 Kullanım 
küçükresim|Python destekli veya tabanlı diğer yazılımlar
Django, Zope uygulama sunucuları, YouTube ve orijinal BitTorrent istemcisi Python kullanan önemli projelerden bazılarıdır. Ayrıca Google, NASA ve CERN gibi büyük kurumlar da Python kullanmaktadır. Pygame ile 2D oyun yapılabilir, Blockchain uygulamaları kodlanabilir, uzaktan kontrol veya görüntü işleme yapılabilir, veri analizi veya veri kontrolü yapılabilir, TensorFlow, PyTorch, Keras gibi kütüphanlerle derin makine öğrenmesi uygulamaları yapılabilir.

Aynı zamanda Python Siber Güvenlik için çok kullanışlı bir programlama dilidir. Kötü amaçlı yazılım analizi ve sızma testi dahil olmak üzere birçok siber güvenlik işlevini yerine getirebilir.

Ayrıca OpenOffice.org, GIMP, Inkscape, Blender, Scribus ve Paint Shop Pro gibi bazı programlarda betik dili olarak kullanılır.

Pek çok Linux dağıtımında ve Apple macOS işletim sisteminde Python öntanımlı bir bileşen olarak gelir.

 Söz dizimi 
küçükresim|upright=1.14|sağ|Python programlama dilinin söz dizimi ve renklendirmesi.
Python'un son derece kolay okunabilir olması düşünülmüştür. Bu yüzden örneğin küme parantezleri yerine girintileme işlemi kullanılır. Hatta bazı durumlarda girintileme işlemine dahi gerek kalmadan kodun ilgili bölümü tek satırda yazılabilir. Böylece Python, program kodunuzu en az çaba ile ve hızlıca yazmanıza imkân tanır. Sade sözdizimi ile diğer programlama dillerinden üstündür.

 Girintileme 
küçükresim|Python 3. Standart tip hiyerarşisi. Bakınız >>> help("TYPES")
Python'da ifade bloklarını sınırlandırmak için süslü ayraçlar ya da anahtar kelimeler yerine beyaz boşluk girintileme kullanılır. Belli ifadelerden sonra girinti artar; girintinin azalması geçerli blokun sonlandığını gösterir.

 İşleçler 

* işleci, çarpma işlemleri için

/ işleci, bölme işlemleri için

// işleci, tam sayı bölme işlemleri için

+ işleci, toplama işlemleri için

- işleci, çıkarma işlemleri için

% işleci, mod alma işlemleri için

< işleci, 'küçüktür' anlamına gelir

> işleci, 'büyüktür' anlamına gelir

== işleci, 'eşittir' anlamına gelir

<= işleci, 'küçük eşittir' anlamına gelir

>= işleci, 'büyük eşittir' anlamına gelir

!= işleci, 'eşit değil' anlamına gelir

** işleci, 'üs alma' anlamına gelir

True işleci, 'doğru' anlamına gelir

False işleci, 'yanlış' anlamına gelir

and işleci, 've' anlamına gelir

or işleci, 'veya' anlamına gelir

not işleci, 'değil' anlamına gelir.

 İfadeler ve akış kontrolü 

Python ifadeleri şunları içerir:

 if ifadesi, bir kod blokunu belli bir koşula bağlı olarak, else ve elif (else-if'in kısaltılması) ile birlikte çalıştırır.
 for ifadesi, yinelenebilir bir nesne üzerinden yineleme yapar, bu sırada ilgili bloktaki her ögeyi bir yerel değişkene atar.
 while ifadesi, koşulu doğru olduğu sürece o kod bloğunu çalıştırır.
 try ifadesi, eklenmiş kod bloğundan dolayı oluşan hataları yakalar ve except maddeleriyle; ayrıca finally blokundaki temizleme kodunun blok nasıl sonlanırsa sonlansın çalıştırılmasını sağlar.
 class ifadesi, bir kod blokunu çalıştırır ve onun yerel ad alanını bir sınıfa atar, bu sayede o sınıf Nesne Yönelimli Programlamada kullanılabilir.
 def ifadesi ile fonksiyon tanımlanır. 
 with ifadesi, bir kod blokunu bir içerik yöneticisine hapseder (örneğin bir kod bloku çalışıtırılmadan önce bir kilit edinir ve sonrasında bu kilidi çözer)
 break ifadesi, döngüyü durdurur.
 continue ifadesi, döngüde geçerli değeri atlar ve sonrakinden devam eder break ifadesinden farklı olarak döngüyü durdurmaz.
 del ifadesi, nesneleri silmek için kullanılır.
 pass ifadesi, bir NOP görevi görür ve geçici kod bloku yerine kullanılabilir. 
 assert ifadesi hata ayıklamada koşulları kontrol etmek için kullanılır.
 return ifadesi, fonksiyondan değer döndürür ve fonksiyonu sonlandırır.
 yield ifadesi, fonksiyondan değer döndürmek için kullanılır. return ifadesinden farklı olarak çalıştıktan sonra fonksiyonu sonlandırmaz. Fonksiyonun sonuna kadar devam eder. 
 print ifadesi, bir ekrana yazdırma görevi görür. Bu ifade Python 3 sürümüyle birlikte print() fonksiyonu ile değiştirildi.
 import ifadesi, modülleri içe aktarmak için kullanılır. 
 from ifadesi, modülün belli bir kısmını içe aktarmak için kullanılır
 as ifadesi, import ve from ifadelerini içe aktarırken modüllere takma ad vermek için kullanılır.

Her ifadenin kendi sözdizimi vardır, örneğin def ifadesi diğer ifadelerin genelinin aksine blokunu anında çalıştırmaz.

 Metotlar 
Nesneler üzerindeki metotlar nesnenin sınıfına eklenmiş fonksiyonlardır; örnek.metod(değişken) sözdizimi, normal metot ve fonksiyonlar için Sınıf.metod(örnek, değişken) ifadesi için bir sözdizimsel şekerdir. Python metotlarının örnek verisine ulaşmaları için açık self parametresine sahip olmaları gerekir. Bu durum Java, C++, Ruby gibi bazı diğer nesne tabanlı programlama diliyle farklılık gösterir.

 Standart kütüphane 
Python'un çok büyük bir standart kütüphanesi  vardır. Bu, dilin artı özelliklerinden biri olarak kabul edilir.

 Örnekler 
Python 3 ve üstü sürümler için uygundur.

 Merhaba dünya 
# -*- coding: utf-8 -*-
print("Merhaba Dünya")

 Yorum satırları 
#Tek satırlık bir python yorumu"""Bu çok satırlı
bir python 
yorumu"""

 Girdi alma ve ekrana basma 
veri = input('Bir veri giriniz:')
print(veri)

 Palindromik sayı kontrolü 
def palindrom_kontrol(number):
    # Sayıyı string veri tipine çevirir
    str_number = str(number)
    # Sayının tersi kontrol edilir
    if str_number == str_number[::-1]:
        return True
    else:
        return False

# Aşağıdaki değişken kullanıcıdan sayı girişi alır.
sayi = int(input("Bir sayı girin: "))

# Aşağıdaki koşul yapıları fonksiyon üzerinden kontrol yapar ve sonucu ekrana yazdırır.
if palindrom_kontrol(sayi):
    print(f"{sayi} bir palindromik sayıdır.")
else:
    print(f"{sayi} bir palindromik sayı değildir.")

 Veri Tipleri 
Veri tipiDeğiştirilebilirAçıklamaÖrnekleriboolhayırBoole'sal değerTrue
Falsebytearrayevetdızibytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])byteshayırBytelardan oluşan dizib'ASCII'
b"ASCII"
bytes([119, 105, 107, 105])complexhayırKarmaşık sayı3+2.7jdictevetKomut çizelgesi{'anahtar1': 1.0, 3: False}{}floathayırKayan nokta1.414inthayırTamsayı42listevetFarklı veri tiplerinden oluşan bir liste, array olarak ifade edilebilir[4.0, 'string', True]
[]NoneTypehayırDeğerin yokluğunu ifade eden veri tipi, diğer dillerde null olarak bilinir.Nonerangehayırİki sayı arasındaki aralık, for döngülerinde yaygın olarak kullanılırrange(1, 10)
range(10, -5, -2)setevetSırasız küme, değerler tekrar edemez{4.0, 'string', True}
set()strhayırKarakter dizisi'Vikipedi' "Vikipedi"
""" Birden Fazla 
Satır"""tuplehayırdeğiştirilemez liste(4.0, 'string', True)
('element',)()

 Sürüm Geçmişi 
+SürümTarih0.920 Şubat 19911.026 Ocak 19941.111 Ekim 19941.213 Nisan 19951.313 Ekim 19951.425 Ekim 19961.531 Aralık 19971.65 Eylül 20002.016 Ekim 20002.115 Nisan 20012.221 Aralık 20012.329 Haziran 20032.430 Kasım 20042.519 Eylül 20062.61 Ekim 20082.73 Temmuz 20103.03 Aralık 20083.127 Haziran 20093.220 Şubat 20113.319 Eylül 20123.416 Mart 20143.513 Eylül 20153.623 Aralık 20163.727 Haziran 20183.814 Ekim 20193.95 Ekim 20203.104 Ocak 20213.1124 Ekim 20223.122 Ekim 20233.137 Ekim 2024

 İsim Kaynağı 
Python'un ismi, dilin yaratıcısı olan Guido van Rossum'un dili geliştirirken keyif aldığı İngiliz komedi grubu Monty Python'dan gelmektedir. Monty Python'a ait birçok atıf Python kodunda ve kültüründe sıklıkla görülebilir. Örneğin, Python literatüründe sıklıkla kullanılan metasentaktik değişkenler, diğer dillerde bulunan geleneksel “foo” ve “bar” yerine “spam” ve “eggs” olarak geçer. Resmi Python belgeleri ayrıca Monty Python rutinlerine çeşitli referanslar içerir. Py- ön eki, bir şeyin Python ile ilgili olduğunu göstermek için kullanılır. Python uygulamalarının veya kitaplıklarının adlarında bu ön ekin kullanımına için Pygame, Qt ve GTK'yi Python'a bağlayan PyQt ve PyGTK ve orijinal olarak Python dilinde yazılmış bir Python uygulaması olan PyPy bunlara örnek olarak verilebilir.

 Popülerlik 
2003 yılından itibaren PythonTIOBE Programlama Topluluğu Endeksi'nde en popüler 10 programlama dili arasında istikrarlı bir şekilde yer alırken, Ekim 2021 itibarıyla Java ve C programlama dillerini geçerek en popüler dil konumunda bulunmaktadır. Updated as required. 2007, 2010, 2018 and 2020 yıllarında ise bir yıl içerisindeki en yüksek kademe artışı çatısı altında “Yılın Programlama Dili” seçilmiştir ve bunu 4 kez yapabilen tek dildir.

Deneysel bir akademik çalışma, Python gibi komut dosyası yazma dillerinin, dize işlemeyi ve sözlükte aramayı içeren programlama sorunları için C ve Java gibi geleneksel dillerden daha üretken olduğunu raporlamış, bellek tüketiminin genellikle "Java'dan daha verimli ve C veya C++'dan çok daha verimsiz” olmadığını saptamıştır.

Python kullanan büyük kuruluşlar arasında Wikipedia, Google, Yahoo! CERN, NASA, Facebook, Amazon, Instagram ve Spotify gibi bazı kuruluşlar yer almaktadır. Sosyal haber ağı sitesi Reddit, çoğunlukla Python ile yazılmıştır.

 Python'dan Etkilenen Programlama Dilleri 
Python programlama dilinin tasarımı ve felsefesi, diğer birçok programlama diline de ilham vermiş veya bu dillere etki etmiştir:

 Boo, benzer bir girintileme, sözdizimi ve nesne modeli kullanır.
 Cobra, benzer bir girintileme ve sözdizimi kullanır ve “Teşekkürler” kısmında bu dilin gelişimine ilham olan diller arasında Python ilk sırada yer alır.
 JavaScript ile çapraz derlenen bir programlama dili olan CoffeeScript, Python'dan ilham almış bir sözdizimine sahiptir.
 ECMAScript/JavaScript, Python'dan yineleyiciler ve oluşturucular ödünç almıştır.
 Python'a çok benzeyen bir betik dil olan GDScript, Godot oyun motoruna yerleştirilmiştir.
 Go, "Python gibi dinamik bir dilde çalışma hızı" ve dizileri dilimlemek için aynı sözdizimini paylaşması için tasarlanmıştır.
 Groovy, Python tasarım felsefesini Java'ya getirme motivasyonuyla geliştirilmiştir.
 Julia, “genel programlama için Python kadar kullanılabilir” olma hedefiyle tasarlanmıştır.
 Nim, girintileme ve benzer sözdizimi kullanır.
 Ruby'nin yaratıcısı Yukihiro Matsumoto Ruby'in gelişimine yönelik şunları ifade etmiştir: "Perl'den daha güçlü ve Python'dan daha nesne yönelimli bir betik dil hedefliyordum. Bu yüzden kendi dilimi tasarlamaya karar verdim."
 Apple tarafından geliştirilen bir programlama dili olan Swift, Python'dan ilham alan bir sözdizimine sahiptir.

Python'un geliştirme uygulamaları diğer diller tarafından da taklit edilmiştir. Örneğin, Python'da “PEP” olarak geçen, bu dile yönelik bir değişikliğin gerekçesini ve bununla ilgili konuları açıklayan belge talep etme uygulaması, Tcl, Erlang, ve Swift'de de kullanılmaktadır.

 Ayrıca bakınız 
PyTorch
Python Imaging Library
Pygame
Tkinter
ScientificPython
Perl
Kivy

 Kaynakça 

 Dış bağlantılar 
Python Programlama Dili - Python 3 için Türkçe Kaynak 
Python programlama dili resmi sitesi 
 www.learningpython.com  


Kategori:Nesne yönelimli programlama dilleri