Python Nedir?

Python; web uygulamaları, yazılım geliştirme, veri bilimi ve makine öğreniminde (ML) yaygın olarak kullanılan bir programlama dilidir. Geliştiriciler, etkili ve öğrenmesi kolay olduğu ve birçok farklı platformda çalıştırılabildiği için Python'ı kullanır. Python yazılımı ücretsiz olarak indirilebilir, her türlü sistemle iyi bir entegrasyon sağlar ve geliştirme hızını artırır.

Python'ın avantajları nelerdir?

Python'ın avantajlarından bazıları şunlardır:

  • Geliştiriciler, basit ve İngilizceye benzer bir söz dizimine sahip olduğundan Python programını kolayca okuyabilir ve anlayabilir. 
  • Geliştiriciler, diğer birçok dile kıyasla çok daha az kod satırıyla bir Python programı yazabildiğinden Python, geliştiricilerin daha üretken olmasını sağlar.
  • Python, neredeyse her görev için yeniden kullanılabilir kodları içeren geniş bir standart kitaplığa sahiptir. Dolayısıyla geliştiricilerin kodu sıfırdan yazmasına gerek yoktur.
  • Geliştiriciler Python'ı Java, C ve C++ gibi diğer popüler programlama dilleriyle kolayca kullanabilir.
  • Dünya genelinde aktif Python topluluğunda, destek sunmaya hazır milyonlarca geliştirici bulunmaktadır. Bir sorunla karşılaşırsanız bu topluluktan hızlıca destek alabilirsiniz.
  • Python'ı öğrenmek isterseniz internette birçok yararlı kaynak bulunmaktadır. Örneğin, kolayca videolar, dersler, belgeler ve geliştirici kılavuzları bulabilirsiniz.
  • Python; Windows, macOS, Linux ve Unix gibi farklı bilgisayar işletim sistemleri arasında taşınabilir.

Python nasıl kullanılır?

Python dili, uygulama geliştirme alanında birçok şekilde kullanılabilir. Bunlardan bazıları şu şekildedir:

Sunucu tarafında web geliştirme

Sunucu tarafında web geliştirme, web sitelerinin kullanıcıya bilgiler göstermek için gerçekleştirdiği karmaşık arka uç işlevleri içerir. Örneğin, web siteleri veritabanlarıyla etkileşim kurmalı, diğer web siteleriyle konuşmalı ve verileri ağ üzerinden gönderirken korumalıdır. 

Python, karmaşık arka uç işlevleri için önceden yazılmış koddan oluşan birçok kitaplık sunduğundan sunucu tarafında kod yazma açısından kullanışlıdır. Geliştiriciler, web uygulamalarını daha hızlı ve daha kolay oluşturmak için gereken tüm araçları sağlayan çok çeşitli Python çerçevelerinden de yararlanabilir. Örneğin, geliştiriciler, baştan yazmak zorunda olmadıklarından saniyeler içinde web uygulaması çatısı oluşturabilirler. Sonrasında, başka test araçlarına ihtiyaçları olmadan çerçevenin test araçlarını kullanarak bu çatıyı test edebilirler.

Python betikleriyle otomasyon

Bir betik dili, normalde insanların gerçekleştirdiği görevleri otomatikleştiren bir programlama dilidir. Programcılar, aşağıdakiler gibi her gün yaptıkları birçok görevi otomatikleştirmek için Python betiklerini yaygın olarak kullanırlar:

  • Çok sayıda dosyayı tek seferde yeniden adlandırma
  • Bir dosyayı başka bir dosya türüne dönüştürme
  • Bir metin dosyasındaki tekrarlayan kelimeleri silme
  • Temel matematiksel işlemleri gerçekleştirme
  • E-posta iletileri gönderme
  • İçerik indirme
  • Temel günlük analizi gerçekleştirme
  • Birçok dosyada hata bulma

Veri bilimi ve makine öğrenimi

Veri bilimi, verilerden değerli bilgileri ayıklamaktır ve makine öğrenimi (ML), bilgisayarlara verilerden otomatik olarak öğrenmesini ve doğru tahminlerde bulunmasını öğretir. Veri bilimciler, aşağıdakiler gibi veri bilimi görevleri için Python'ı kullanır:

  • Veri temizleme olarak bilinen, yanlış verileri düzeltme ve kaldırma 
  • Verileri ayıklama ve verilerin çeşitli özelliklerini seçme
  • Veri etiketleme, yani veriler için anlamlı adlar ekleme
  • Verilerden farklı öngörüler çıkarma
  • Çizgi grafikler, çubuk grafikler, sütun grafikler ve dilim grafikler gibi grafikleri kullanarak verileri görselleştirme
 
Veri bilimciler, ML modellerini eğitmek ve verileri doğru şekilde sınıflandıran sınıflandırıcılar derlemek için Python ML kitaplıklarını kullanır. Farklı alanlarda çalışan kişiler; görüntü, metin ve ağ trafiği sınıflandırması, konuşma tanıma ve yüz tanıma gibi sınıflandırma görevlerini yapması için Python tabanlı sınıflandırıcılar kullanır. Veri bilimcileri ayrıca gelişmiş bir ML tekniği olan derin öğrenme için Python'u kullanır.

Yazılım geliştirme

Yazılım geliştiriciler, Python'ı sıklıkla aşağıdakiler gibi farklı geliştirme görevleri ve yazılım uygulamaları için kullanır:

  • Yazılım kodundaki hataları izleme
  • Yazılımı otomatik olarak derleme
  • Yazılım proje yönetimini gerçekleştirme
  • Yazılım prototipleri geliştirme
  • Grafik Kullanıcı Arabirimi (GUI) kitaplıklarını kullanarak masaüstü uygulamaları geliştirme
  • Basit metin tabanlı oyunlardan daha karmaşık video oyunlarına kadar çeşitli oyunlar geliştirme

Yazılım testi otomasyonu

Yazılım testi, yazılımda hata olmadığından emin olmak için yazılımdan elde edilen sonuçların, beklenen sonuçlarla eşleşip eşleşmediğini kontrol etme işlemidir. 

  • Geliştiriciler, yazdıkları işlevleri test etmek için Unittest, Robot ve PyUnit gibi Python birim testi çerçevelerini kullanır. 
  • Yazılım testinden sorumlu kişiler, çeşitli test senaryoları için test örnek olayları yazmak için Python'ı kullanır. Örneğin, Python'ı bir web uygulamasının, birden çok yazılım bileşeninin ve yeni özelliklerin kullanıcı arabirimini test etmek için kullanırlar. 

Geliştiriciler, test betiklerini otomatik olarak çalıştırmak için birçok araç kullanabilir. Bu araçlar, Sürekli Entegrasyon/Sürekli Dağıtım (CI/CD) araçları olarak bilinir. Yazılım testinden sorumlu kişiler ve geliştiriciler, testleri otomatikleştirmek için Travis CI ve Jenkins gibi CI/CD araçlarını kullanır. CI/CD aracı, Python test betiklerini otomatik olarak çalıştırır ve geliştiricilerin yaptığı her yeni kod değişikliğinde test sonuçlarını bildirir.

Python'ın tarihi nedir?

Python, Hollanda'da bir bilgisayar programcısı olan Guido Van Rossum tarafından oluşturulmuştur. İlk başta Noel tatilinde vakit geçirmek için hobi olarak ilgilendiği proje, 1989 yılında Centrum Wiskunde & Informatica'da (CWI) başladı. Dilin adı, Guido Van Rossum'un büyük bir hayranı olduğu Monty Python'ın Uçan Sirki adlı BBC televizyon dizisinden geliyordu. 

Python sürümlerinin tarihi

  • Guido Van Rossum, Python kodunun ilk sürümünü (sürüm 0.9.0) 1991 yılında yayımladı. Bu sürümde, hatalarla ilgilenmek için bazı veri türleri ve işlevler gibi iyi özellikler bulunuyordu. 
  • Python 1.0, 1994 yılında eşleştirme, filtreleme ve azaltma gibi bir veri listesini kolayca işlemek için yeni özelliklerle birlikte kullanıma sunuldu.
  • Python 2.0, 16 Ekim 2000 tarihinde, Unicode karakter desteği ve bir listeyi taramanın daha kısa yolu gibi, programcılar için yeni kullanışlı özelliklerle yayımlandı.
  • Python 3.0, 3 Aralık 2008 tarihinde kullanıma sunuldu. Bu sürüme, yazdırma işlevi ve sayıların bölünmesi ve ayrıca hatalarla ilgilenme için daha fazla destek gibi özellikler eklendi. 

Python'ın özellikleri nelerdir?

Aşağıdaki özellikler, Python programlama dilinin benzersiz olmasını sağlamaktadır:

Yorumlanan bir dil

Python, yorumlanan bir dildir, yani kodu doğrudan, satır satır çalıştırır. Program kodunda hatalar varsa çalışmayı durdurur. Bu nedenle programcılar, koddaki hataları hızlıca bulabilir.

Kullanımı kolay dil

Python, İngilizceye benzer kelimeler kullanır. Diğer programlama dillerinin aksine Python, süslü ayraç işaretleri kullanmaz. Bunun yerine girintileme kullanır. 

Dinamik olarak yazılan bir dil

Python, değişken türlerini çalışma sırasında belirlediğinden programcıların, kod yazarken belirlemesine gerek kalmaz. Dolayısıyla, Python programlarını daha hızlı yazabilirsiniz.

Üst düzey bir dil

Python, diğer programlama dillerine kıyasla insanların kullandığı dile daha yakındır. Bu yüzden programcıların, mimari ve bellek yönetimi gibi temelde yer alan işlevler konusunda düşünmesine gerek yoktur.

Nesne odaklı bir dil

Python, her şeyi bir nesne olarak varsayar ancak yapılandırılmış ve işlevsel programlama gibi diğer programlama türlerini de destekler.

Python kitaplıkları nelerdir?

Kitaplık, kodu sıfırdan yazmamak için geliştiricilerin Python programlarına dahil edebileceği, sık kullanılan kodlardan oluşan bir koleksiyondur. Python, varsayılan olarak, Standart Kitaplıkla birlikte sunulur ve bu kitaplıkta birçok yeniden kullanılabilir işlev yer alır. Buna ek olarak web geliştirme, veri bilimi ve makine öğrenimi (ML) gibi çeşitli uygulamalar için kullanılan 137.000'den fazla Python kitaplığı bulunmaktadır.

En popüler Python kitaplıkları hangileridir?

Matplotlib

Geliştiriciler, verileri yüksek kaliteli iki veya üç boyutlu (2B ve 3B) grafiklerde göstermek için Matplotlib'i kullanır. Bu, çoğunlukla bilimsel uygulamalarda kullanılır. Matplotlib ile verileri, çubuk grafikler ve çizgi grafikler gibi farklı grafiklerde göstererek görselleştirebilirsiniz. Ayrıca birden fazla grafiği tek seferde çizebilirsiniz ve grafikler tüm platformlar arasında taşınabilir.

Pandas

Pandas, tablolar ve diziler gibi zaman serisi verileri ve yapılandırılmış verileri işlemek için kullanabileceğiniz optimize edilmiş ve esnek veri yapıları sağlar. Örneğin, verileri okumak, yazmak, birleştirmek, filtrelemek ve gruplandırmak için Pandas'ı kullanabilirsiniz. Çoğu kişi Pandas'ı veri bilimi, veri analizi ve ML görevleri için kullanır.

NumPy

NumPy, geliştiricilerin kolayca dizi oluşturmak ve yönetmek, mantıksal şekilleri işlemek ve doğrusal cebir işlemleri gerçekleştirmek için kullandığı popüler bir kitaplıktır. NumPy, C ve C++ gibi birçok dille entegrasyon desteği sunar.

Requests

Requests kitaplığı, web geliştirme için gerekli olan kullanışlı işlevler sağlar. Bu kitaplığı HTTP istekleri göndermek, üst bilgiler eklemek, URL parametreleri eklemek, veriler eklemek ve web uygulamalarıyla iletişim kurarken daha birçok görevi gerçekleştirmek için kullanabilirsiniz. 

OpenCV-Python

OpenCV-Python, geliştiricilerin görüntü işleme uygulamaları için görüntüleri işlemek üzere kullandığı bir kitaplıktır. Bu kitaplık, görüntüleri eş zamanlı olarak okuma ve yazma, 2B bir ortamdan 3B bir ortam oluşturma, videodan görüntüler yakalama ve bunları analiz etme gibi görüntü işleme görevlerine yönelik birçok işlev sunar.

Keras

Keras; veri işleme, görselleştirme ve daha birçok konuda mükemmel destek sağlayan, Python'ın derin sinir ağı kitaplığıdır. Keras, birçok sinir ağını destekler. İnovasyon uygulamaları yazma konusunda esneklik sağlayan modüler bir yapıya sahiptir.

Python çerçeveleri nelerdir?

Python çerçevesi, paketlerden ve modüllerden oluşan bir koleksiyondur. Modül, ilgili kodlardan oluşan bir kümeyken, paket ise modüllerden oluşan bir kümedir. Geliştiriciler, Python uygulamalarını daha hızlı derlemek için Python çerçevelerini kullanır ve böylece, web uygulamasında iletişimin nasıl gerçekleştiği ya da Python'ın programı nasıl daha hızlı hale getireceği gibi ayrıntılar konusunda endişelenmelerine gerek kalmaz. Python'da iki tür çerçeve bulunur: 

  • Tam yığın çerçeve, büyük bir uygulama derlemek için neredeyse gerekli olan her şeyi içerir.
  • Mikro çerçeve, basit Python uygulamaları derlemek için minimum işlevleri sağlayan temel bir çerçevedir. Uygulamalar için daha gelişmiş işlevler gerekirse uzantılar da sağlar.

En popüler Python çerçeveleri hangileridir?

Geliştiriciler, geliştirme süreçlerinin daha verimli olması için aşağıdakiler gibi birçok Python çerçevesini kullanabilir:

Django

Django, büyük ölçekli web uygulamaları geliştirmek için en yaygın kullanılan tam yığın Python web çerçevelerinden biridir. Geliştirmek ve test etmek için web sunucusu, web sitesi ön ucunu derlemek için şablon altyapısı ve çeşitli güvenlik mekanizmaları gibi birçok kullanışlı özellik sunar.

Flask

Flask, küçük web uygulamaları geliştirmek için kullanılan bir mikro çerçevedir. Özellikleri arasında güçlü topluluk desteği, iyi yazılmış belgeler, şablon altyapısı, birim testi ve dahili web sunucusu yer alır. Doğrulama desteği, veritabanı eşleştirme katmanları ve web güvenliği için uzantılar da sağlar.

TurboGears

TurboGears, web uygulamalarını daha hızlı ve daha kolay şekilde derlemek için tasarlanmış bir çerçevedir. Popüler özelliklerinden bazıları şunlardır: 

  • Belirli bir veritabanı tablo yapısı
  • Proje oluşturma ve yönetme araçları
  • Veritabanları derlemek için şablon altyapısı
  • Ön uç derlemek için şablon altyapısı
  • Web güvenliğini sağlama mekanizmaları

Apache MXNet

Apache MXNet, geliştiricilerin araştırma prototipleri ve derin öğrenme uygulamaları derlemek için kullandığı hızlı, esnek ve ölçeklenebilir bir derin öğrenme çerçevesidir. Java, C++, R ve Perl gibi birçok programlama dilini destekler. Geliştirmeyi desteklemek için zengin bir araç ve kitaplık seti sunar. Örneğin, etkileşimli makine öğrenimi (ML) kitabı ve görüntü işleme araç setlerinin yanı sıra metin ve konuşma gibi doğal dilleri işleyen Doğal Dil İşleme'ye (NLP) yönelik derin öğrenme modelleri bulabilirsiniz.

PyTorch

PyTorch, başka bir açık kaynak ML kitaplığı olan Torch kitaplığı üzerine kurulmuş, makine öğrenimine yönelik bir çerçevedir.  Geliştiriciler, PyTorch'u NLP, robotik ve görüntü işleme gibi uygulamalarda kullanarak görüntülerdeki ve videolardaki anlamlı bilgileri bulurlar. Ayrıca bu uygulamaları CPU ve GPU'larda çalıştırmak için de kullanırlar.

Python IDE'leri nelerdir?

Entegre geliştirme ortamı (IDE), geliştiricilerin kod yazmak, kodu düzenlemek, test etmek ve koddaki hataları gidermek için ihtiyaç duyduğu araçları tek bir yerde toplayan bir yazılımdır. 

En popüler Python IDE'leri hangileridir?

PyCharm

PyCharm, yazılım araçları geliştiren bir Çek şirketi olan JetBrains tarafından oluşturulmuştur. Küçük Python uygulamaları için uygun olan ücretsiz bir topluluk sürümü ve büyük Python uygulamaları derlemek için uygun olan, ücretli bir profesyonel sürümü vardır. Bu sürüm, aşağıdaki tüm özellikleri destekler:

  • Otomatik kod tamamlama ve kod inceleme
  • Hataları giderme ve hızlı düzeltmeler
  • İşlevi değiştirmeden kod temizleme
  • Django ve Flask gibi web uygulaması çerçeveleri için destek
  • JavaScript, CoffeeScript, TypeScript, AngularJS ve Node gibi diğer programlama dilleri için destek
  • Matplotlib ve NumPy gibi bilimsel araçlar ve kitaplıklar
  • Uzak sanal makinelerde uygulamalar çalıştırabilme, hata ayıklayabilme, test edebilme ve dağıtabilme özelliği
  • Koddaki hataları bulan bir hata ayıklayıcı, koddaki performans sorunlarını belirleyen profil oluşturucu ve birim testleri çalıştırmak için test çalıştırma aracı
  • Veritabanları desteği

IDLE

Entegre Geliştirme ve Öğrenme Ortamı (IDLE), varsayılan olarak yüklenen Python IDE'sidir. Tkinter GUI araç seti kullanılarak yalnızca Python ile geliştirilmiştir ve aşağıdaki özellikleri sunar:
 
  • Windows, Unix ve macOS gibi birçok işletim sisteminde çalışır
  • Komutları çalıştırmak ve çıktıyı görüntülemek için bir kabuk penceresi sağlar
  • Kod söz dizimi vurgulama ve otomatik kod tamamlama sağlayan çok pencereli metin editörü sunar
  • Kendi hata ayıklayıcısı bulunur 

Spyder

Spyder, birçok bilim insanının ve veri analistinin kullandığı açık kaynak bir IDE'dir. Gelişmiş veri analizi, veri görselleştirme ve hata ayıklamaya yönelik özelliklerle kapsamlı bir geliştirme deneyimi sağlar. Ayrıca aşağıdaki özellikleri içerir:

  • Birden çok dili destekleyen zengin kod editörü
  • Etkileşimli IPython konsolu
  • Basit hata ayıklayıcı
  • Matplotlib, SciPy ve NumPy gibi bilimsel kitaplıklar
  • Koddaki değişkenleri bulabilme
  • Belgeleri gerçek zamanlı olarak görüntüleyebilme

Atom

Atom, Python da dahil olmak üzere birçok programlama dilinde kodlamayı destekleyen, GitHub tarafından geliştirilen ücretsiz bir editördür. Geliştiriciler, Atom'u kullanarak, kodunuzu merkezi olarak kaydedebileceğiniz web sitesi GitHub ile doğrudan çalışabilirler. Atom, aşağıdaki özellikleri sunar:

  • Birçok işletim sisteminde kullanılabilme 
  • Yeni paketlerin kolay yüklenmesi veya oluşturulması
  • Daha hızlı otomatik kod tamamlama
  • Dosyaları ve projeleri araştırabilme
  • Arabirimin kolayca özelleştirilmesi

Python SDK'leri nelerdir?

Yazılım geliştirme seti (SDK), geliştiricilerin belirli bir dilde yazılım uygulamaları oluşturmak için kullanabildiği bir yazılım araçları koleksiyonudur. Çoğu SDK, farklı donanım platformlarına ve işletim sistemlerine özgüdür. Python SDK'leri; kitaplıklar, kod örnekleri ve geliştiricilerin uygulama yazarken yararlandığı geliştirici rehberleri gibi birçok araç içerir.

AWS PyCharm nedir?

PyCharm İçin AWS Araç Seti, AWS'de Python uygulamalarını oluşturmayı, dağıtmayı ve bunlardaki hataları ayıklamayı kolaylaştıran PyCharm IDE eklentisidir. Geliştiriciler, AWS Toolkit for PyCharm'ı kullanarak Python ile geliştirmeye kolayca başlayabilir. Geliştiricilere başlangıç kılavuzları, adım adım hata ayıklama ve IDE dağıtımı gibi birçok kullanışlı özellik sağlar.

Python'da Boto3 nedir?

Boto3, Python için AWS SDK'sidir. Bunu; Amazon Esnek İşlem Bulutu (EC2), Amazon Basit Depolama Hizmeti (S3) ve Amazon DynamoDB gibi AWS hizmetlerini oluşturmak, yapılandırmak ve yönetmek için kullanabilirsiniz. Boto3 ayrıca iki tür API sağlar: düşük düzey API'ler ve geliştiriciler için Kaynak API'leri.

AWS'de sonraki adımlar