REKLAM ALANI

Python Nedir?

avatar MRAybarsCAN
Forum Üyesi
904
#1
Yorumu Paylaş

1991'den beri [b]Python[/b] programlama dili sadece gereksiz programlar için tamamlayıcı bir dil olarak değerlendiriliyordu. Hatta “Automate the Boring Stuff” (Türkçe'ye "Sıkıcı Şeyleri Otomatikleştiren" olarak çevirebileceğimiz popüler bir kitap) adında bir kitap dahi yayınlanmıştır. 
Bununla birlikte son birkaç yılda [b]Python[/b] modern yazılım geliştirme, altyapı yönetimi ve veri analizinde birinci sınıf bir programlama dili olarak ön plana çıkmıştır. Artık hackerlar için bir arka kapı oluşturucusu değil, web uygulaması oluşturma ve sistem yönetiminde önemli rol alma, [b]veri analizleri[/b] ve [b]makine öğreniminde[/b] parlayan bir dil olarak ün kazanmıştır.
[b]Python’un Önemli Avantajları[/b]
[b]Python[/b] programlama dili yeni başlayanlar veya [b]Python'da[/b] uzmanlaşanlar için önemli avantajlara sahiptir.  
[b]Python Programlama Dili Kullanmak ve Öğrenmek Oldukça Kolay[/b]
Diğer karmaşık program dillerini öğrenmek çok zaman alır ve kullanım alanları büyük olmasından dolayı kullanımını öğrenmek çok zordur. Ancak [b]Python[/b] sözdizimi hem okunabilir hem de ileriye dönüktür. Öğrenim, kararlı programlama dili sayesinde basittir. Yeni başlayanlar için de ideal bir seçim olarak ön plana gelir. Sonuç olarak, [b]Python[/b] kullanarak program geliştirmeye yeni bir adım atmış olan herkes hızlı ve basit şekilde ilerleme kaydedebilir. Diğer karmaşık dillere göre basitlik söz konusu olduğunda, en önde yer almaktadır.
[b]Python Uygulanabilirdir ve Kullanım Çerçevesi Oldukça Geniştir[/b]
İsminin az duyulmasına rağmen, yazılımcılar arasında hem popülerdir hem de yaygındır. Github projelerinin birçoğu [b]Python[/b] tabanlıdır. Hatta Tiobe Index ve Github gibi programlama örneklerinin sıralandığı sistemlerde, [b]Python[/b] tabanlı programları en üst sıralarda göstermektedir. Kullanım alanı en küçük işletim sistemlerinden en büyük işletim sistemlerine kadar birçok OS tarafından desteklenmektedir. İnternette yer alan büyük yazılım kütüphanelerin ve API-destekli servislerin mutlaka [b]Python[/b] tabanlı bindings ya da wrappers’ları vardır. Bundan dolayı Python, bu servisler ile serbestçe arayüz oluşturur veya bu kütüphaneleri doğrudan kullanır. Yazılım dilleri arasında en hızlısı olmasa da çoklu platformlarda kullanılması bir adım önde olmasını sağlamıştır.
[b]Python Basit Bir Dil Değildir[/b]
Oluşturulan scriptlerin ve otomasyon programlarının çoğu Python kod şemalarını kapsasa da, [b]Python[/b] ayrıca, hem bağımsız uygulamalar hem de web hizmetleri olarak profesyonel kalitede yazılımlar oluşturmak için kullanılır.
[b]Python Ne İçin Kullanılır?[/b]
Ayrıca, [b]Ansible[/b] ve Salt gibi araçlarda sistem gereksinimlerini ve yapılandırmasını sağlayan, bunlara ek olarak web tarayıcıları veya uygulama GUI'leriyle etkileşimleri otomatikleştiren özellikleri de bulunmaktadır. Kısaca anlatmak gerekirse, Script oluşturmak ve otomasyon [b]Python[/b] için buz dağının sadece görünen kısmıdır.
[b]Python ile Uygulama Programlama[/b]
[b]Python[/b] programlama dili ile konsol uygulamaları ve çoklu platformlara GUI uygulamaları oluşturabilirsiniz. Bunları bağım kurulum dosyları olarak kullanabilirsiniz. [b]Python[/b] ile oluşturulan bir Script kendi başına bir binary serisi oluşturamaz, ancak  cx_Freeze and PyInstaller üçüncü taraf programlar sayesinde durum imkansızdan münküne dönüşmektedir.
[b]Veri Bilimi ve Makine Öğreniminde Python’un Yeri[/b]
Sofistike veri analizleri günümüzde IT için en önemli konular haline gelmiştir. [b]Python[/b] ise bu durumlar için en elverişli programlama dili olmuştur. [b]Python[/b] arayüzündeki kütüphanelerin birçoğu makine öğrenimi ve veri bilimi üzerine elverişlidir. Bu alanlardaki kütüphanelerde ki yüksek kaliteli komutları, [b]makine öğrenimi[/b] kütüphanelerinin ve diğer nümerik algoritma kütüphanelerinin sürekli gelişmesine çok yardımcı olmuştur. 
[b]Python ile Web Servisleri ve RESTful API’leri Kodlama[/b]
[b]Python[/b] içerisinde bulunan yerel kütüphaneler üçüncü parti web yazılımları ile birleştiğinde,  ortaya bir kaç satır kod ile daha hızlı bir website yönetimi elde edilebilir. REST API’lerin uygun kod blokları ile oluşturulması seri bir şekilde sitenin veri yürütme olayını hızlı yapmasına olanak sağlar. Özellikle [b]Python’un[/b] son güncellemesi asinkron operasyonlarının daha güçlü bir yapıya dönüştürmüştür. Doğru kütüphaneler ile sitelerin saniyede binlerce kod istemine karşılık veri akışı sağlamasına yardımcı olmuştur.
[b]Metaprogramlama ve Kod Derlemesi[/b]
Diğer diller ile karşılaştırıldığında [b]Python’da[/b] yer alan bütün modüller ve kütüphaneler birer nesne olarak görev yapar. Bunun sayesinde [b]Python[/b], etkili bir kod derleyici olarak ön plana çıkmaktadır. Kendi kod özellikleri ile yazılan uygulamaları manipüle ederek, diğer dillerde yazılması çok zor olan yada neredeyse imkansız olan uygulamaları oldukça kolay yazılabilir hale getirir. 
[b]Python’un[/b] çoklu platform uygulamaları oluşturması da LLVM benzeri kod derleyici sistemlerinde etkili kodlar oluşturmak için uygun olmasını da sağlar.
[b]Yapışkan Kod Olarak Python[/b]
Sıklıkla Glue Code (Yapışkan Kod) olarak adlandırılan Python, bu takma ismini  [b]C[/b] dilinin kütüphanesindeki kodlar ile ortaklaşa bir yapı oluşturup, etkili program yapılmasına yardımcı olduğu için almıştır. Veri bilimden ve [b]makine öğreniminde[/b] eşsiz bir seçenek olarak ön plana gelmesini sağlamıştır.
[b]Python’un Eksiklikleri[/b]
Her ne kadar [b]Python[/b] genel anlamda kaliteli uygulamalar yazmak için uygun olsa da bazı eksiklikleri ve yetemediği alanlarda vardır.
Yüksek düzeyde bir programlama dili oluduğu için sistem düzeyinde programlama için uygun değildir. Ancak bu kategori içinde aygıt sürücüleri veya işletim sistemi çekirdeği yer almaz. 
Ayrıca, platformlar arası bağımsız binary dosyalar için çağrı yapan durumlarda da ideal değildir. Windows, [b]MacOS[/b] ve Linux işletim sistemleri için bir uygulama geliştirebilirsiniz. Ancak oluşturulacak uygulama fazla görkemli uygulama olmaz
Genel olarak [b]Python[/b] programlama dilin de hız ön planda olduğu için ağır programlarda fazla işlevsellik sağlamaz. Bundan dolayı en eski programlama dillerinden olan  [b]C / C ++[/b] gibi diller kullanabilirsiniz.
[b]Python İşlerinizi Nasıl Kolay Hale Getirir?[/b]
[b]Python[/b] program dili oldukça kısa ve okunabilir syntax’lardan oluşur. [b]Python’un[/b] en  son ki 3.x güncellemesindeki standart “Merhaba Dünya” yazısı şu şekildedir.
print(“Hello world!”)
[b]Python'da[/b] birçok yaygın program akışını açık bir şekilde ifade etmek için birçok nesne elemanları kullanabilirsiniz.  Bir liste nesnesinin içindeki txt dosyasından satırları okuyan standart bir program düşün ve bunları dizi biçiminde sıralamasını istiyorsunuz. Bunun için kod aşağıdaki gibidir.
with open(‘apsisx.txt’) as apsisx_file:
     file_lines = [x.strip(‘\n’) for x in apsisx_file]
Programın kod dizimi açısından incelediğimizde "with/as" yapısı, bir kod bloğu bir nesneyi örneklendirmek ve daha sonra bu bloğun dışına atmak için etkili bir yol sağlayan bir içerik yöneticisidir. Bu durumda, nesnemiz open () işleviyle çağrılan  apsisx_file olmuştur. Bu sayade dosyayı açmak, ondan tek tek satırları okumak ve daha sonra kapatmak için birkaç satırlık ekstra kod yazmanın gereği kalmamıştır.
[x.strip(‘\n’) for x in apsisx_file] yapısı başka bir [b]Python[/b] dil şemasıdır. Diğer öğeleri (buradaki, apsisx_file ve diğer kodlar) içeren yapı kodların yinelenmesini sağlar. Her yinelenen nesnenin (that is, each x) işlenmesini ve otomatik olarak bir listeye eklenmesine yardımcı olur.
Genel olarak Python'da, başka bir dillerde de oluşturulan "for..."  kalıbını döngü olarak yazabilirsiniz.  Temel nokta, Python'un çoklu nesneler üzerinde yineleyen döngüler gibi şeyleri ekonomik olarak ifade etmenin bir yolu olduğu yönündedir. Ayrıca, döngüdeki her öğe için basit bir işlem gerçekleştirmeye veya açık bir örnekleme ya da elden çıkarma gerektiren şeylerle çalışmanıza yardımcı olur.
Bu gibi kod blokları, [b]Python[/b] dili ile program geliştiren insanların farklılık ve okunabilirliği dengelemelerine izin verir.
[b]Python’un[/b] diğer dil özellikleri, yaygın kullanım durumlarını tamamlayıcı niteliktedir. "Unicode dizeleri" gibi en modern nesne türleri doğrudan dil içerisine aktarılabilir. Listeler, sözlükler (hashmaps), tupllar (nesnenin değişmez yapılarını depolamak için kullanılır) ve setler  (sadece belirli kod dizgileri için kullanılır) gibi veri yapıları mevcuttur.
[b]Python 2 ve Python 3 Karşılaştırması[/b]
[b]Python'ın[/b] mevcut olarak iki sürümü bulunmaktadır. Bunlar yeni kullanıcıların ufkunu açacak özelliğe sahiptir. Bunlardan Python 2.x, "legacy" olarak geçmektedir ve 2020'ye desteklenmeye ve güncellemeleri almaya devam edecektir. Ancak bu süre dolduktan sonra gayri resmi olarak devam edebilir. Python 3.x, şu an mevcut olarak işletim sistemlerine sunulan ve 2.x versiyonunda bulunmayan birçok özelliğe sahiptir. Bunlardan başlıcaları daha iyi eşzamanlılık kontrolleri ve daha verimli bir derleme sistemidir.
[b]Python’un Kütüphaneleri[/b]
[b]Python'un[/b] son zamanlarda bu kadar üstün bir başarıya sahip olması, kendine özgü zengin ve bunlara ek olarak üçüncü taraf yazılımların ekosistemine dayanıyor. [b]Python[/b], hem güçlü bir standart kütüphaneden hem de üçüncü taraf geliştiricilerden kolayca elde edilen, edinilen bilgilerin de kolayca kullanılabilen kütüphanelerden destek alır. Bu programlama dili onlarca yıllık gelişmenin yanı sıra yapılan katkılarla daha da zenginleştirilmiştir.
[b]Python’un[/b] standart kütüphanesi, matematik, dizi işleme, dosya ve dizin erişimi, ağ oluşturma, asenkron işlemler, iş parçacığı, çoklu işlem yönetimi gibi yaygın programlama görevlerine yönelik modüller sağlar. Ayrıca aynı zamanda modern uygulamaların ihtiyaç duyduğu ortak, üst düzey programlama görevlerini yöneten JSON ve XML gibi yapılandırılmış dosya formatlarını okuma ve yazma, sıkıştırılmış dosyaları kullanma, internet protokolleri ve veri formatlarıyla çalışma (web sayfaları, URL'ler, e-posta) gibi modülleri de içerir. C-uyumlu yabancı fonksiyon arayüzünü ortaya çıkaran çoğu harici kod [b]Python’un[/b] ctypes modülü ile erişilebilir.
Varsayılan Python sürümü tam olarak gelişmemiş bir sürümdür. Ancak Tkinter üzerinden çoklu platform GUI kütüphanesi ve SQLite 3 veritabanının gömülü bir kopyası ile kullanılabilir.
[b]Python[/b] Paket Endeksinde (PyPI) bulunan binlerce üçüncü taraf kütüphanesi, Python'un popülaritesi ve çok yönlülüğün en büyük göstergesi olmaktadır.
Örneğin:
  • BeautifulSoup kütüphanesi, HTML'in tam olarak analizini yaparak dışarıya bütün verileri ayıklayan herşeyin bir arada olduğu bir araç görevi görür.

  • Flask ve [b]Django[/b] gibi frameworkler, hem basit hem de gelişmiş kullanım durumlarını kapsayan web servislerinin hızlı geliştirilmesine olanak tanır.

  • Çoklu bulut hizmetleri, [b]Python’un[/b] nesne modeli ile Apache Libcloud kullanılarak yönetilebilir.

  • NumPy, Pandas ve Matplotlib, matematik ve istatistiksel işlemleri hızlandırır ve verilerin görselleştirilmesini kolaylaştırır.
[b]Python’u Alt Seviyeye Düşüren Özellikleri[/b]
[b]C #[/b][b]Java[/b] ve Go programlama dilleri gibi [b]Python[/b] da toplanan bellek yönetimine sahiptir. Yani programcı, nesneleri izlemek ve bırakmak için kod uygulamak zorunda kalmamasını sağlar. Normalde, çöp toplama arka planda otomatik olarak gerçekleşir, ancak bu bir performans sorunu ortaya çıkarırsa, bunu manuel olarak tetikleyebilir veya tamamen devre dışı bırakabilirsiniz.
[b]Python'un[/b] önemli bir yönü dinamizm bir yapıya sahip olmasıdır. Nesne tabanlı bir programlama dili olarak kullanıldığı için dildeki her şey, işlevler ve modüller de dahil olmak üzere, nesne olarak ele alınır. Bu sayede kullanılan nesneler üst düzey kod yazmayı çok daha kolay hale getirir. Geliştiriciler karmaşık nesne manipülasyonlarını yalnızca birkaç satır kod ile gerçekleştirebilir ve hatta bir uygulamanın parçalarını gerektiğinde değiştirilebilecek soyutlamalar düzenleyerek kullanabilirler.
Python’un "significant whitespace" denilen boşuklar kullanması, [b]Python’un[/b] en iyi ve en kötü özelliklerinden biri olarak değerlendirilebilir. Aşağıdaki ikinci satırdaki girinti sadece okunabilirlik için değildir; [b]Python’un[/b] kullanımında ki kod sıralamasının bir parçasıdır. Python derlemesi, kontrol akışını göstermek için uygun girintileri kullanmayan kod satırlarını reddeder.
deneme
Forum Üyesi

Konuda Ara

0 Yorum


Konuyu Okuyanlar: