Python 1991 yılında piyasaya çıkmış açık kaynak ve nesne yönelimli bir programlama dilidir. Daha çok yapay zeka alanında karşımıza çıkmaktadır. Bunun yanı sıra birçok alanda da tercih edilme sebebidir. En çok tercih edilme sebepleri kolay yazım şeklinin olması, esnekliği, çabuk öğrenilebilmesi ve geniş bir kütüphane havuzuna sahip olmasıdır.
--------------İÇİNDEKİLER---------------1. Python Nedir?
1.1 Kurulum
1.2 Temel Özellikleri
1.3 Veri Tipleri
2. Kullanım Alanları
2.1 Web Geliştirme
2.2 Oyun Geliştirme
2.3 Otomasyon
2.4 Yapay Zeka
2.5 Masaüstü Uygulama
3. Python'un Avantajları
4. Python Kullanan Şirketler
5. Python Eğitimleri
6. Deployment
7. Kaynaklar
8. Some Keywords
1. Python Nedir?
Python, Object Oriented Programming’i destekleyen ve kodları satır satır yorumlanan(Interpreted programming language), yüksek seviyeli bir programlama dilidir.
Web geliştirme, masaüstü uygulamaları, mobil uygulamalar veya donanım araçlarına kadar geliştirmeye imkan tanır.
Birçok farklı platforma desteği vardır. İşletim sistemi özelinde bir uygulama geliştirmediyseniz Linux, Windows ve MacOS gibi platformlara ara birim değişikliği gerektirmeden taşınabilir.
Python’da kod yazarken kod blokları girintiler ile belirtilir ve bu yüzden girinti boşluğu çok önemlidir. Değişken tanımlarken veri tipini belirtmeye gerek yoktur ve daha sonrasında bu değişkenin veri tipi değiştirilebilir. Pek tavsiye edilmese de değişkenlere Türkçe karakterler verilebilir.
1.1 Kurulum
Python’u www.python.org adresinden indirip herhangi bir IDE veya editör yardımıyla kodlamaya başlayabilirsiniz. Bilgisayarınıza yüklediğiniz Python sürümünü öğrenmek isterseniz aşağıdaki komutu çalıştırabilirsiniz;
python -v
Python’da bir kütüphane kurmak için sisteminizde pip yüklü olmalıdır.
Pip (PIP install packages) Python için bir paket yönetim sistemidir. Node.js’deki npm’e karşılık gelir.
Örnek bir kütüphane kurulumu aşağıdaki gibidir;
pip install selenium
Kurulu olan tüm paketleri listelemek;
pip list
1.2 Temel Özellikleri
- Kolay ve net okunabilen bir yazıma sahiptir.
- Dinamik veri yapısına sahiptir.
- Modüler yapıya sahiptir ve geniş kütüphaneleri vardır.
- Nesne tabanlı programlamaya oldukça elverişlidir.
1.3 Veri Tipleri
- Text (Metin) Tipi:
str
- Numerik tipler:
int
,float
- Liste tipleri:
list
,tuple
,range
- İlişki tipi:
dict
- Küme tipi:
set
- Boolean Tipi:
bool
2. Kullanım Alanları?
Sahip olduğu yüzlerce kütüphane ve sağladığı avantajlardan dolayı birçok alanda Python dili tercih edilmektedir. Bu alanlardan bazıları;
- Web
- Otomasyon
- Grafik Kullanıcı Arayüzü (GUI)
- İstatistik, Veri Analizi
- Yapay Zeka
- Machine Learning
- Image Processing
- Network, Ağ Güvenliği
- Oyun
2.1 Web Geliştirme
Python, Python ile bir web sitesinin arka ucunu(backend) oluşturmamıza izin veren Flask ve Django gibi bazı framework’lere sahiptir. Tabii ki, ön ucu(frontend) oluşturmak için hala HTML, CSS ve JavaScript kullanmanız gerekiyor. Fakat Jinja template engine’i sayesinde ön uç geliştirmeye de imkan tanımaktadır.
Flask
Python geliştiricileri tarafından geliştirilmiş web framework’üdür. Belirli araçlar veya kütüphaneler gerektirmediği için “micro framework” olarak sınıflandırılır.
- Kolay öğrenilebilir.
- Soft bir framework’tür.
- Hazırda gelen decorator yapısı vardır.
Django
Flask gibi bir web framework’üdür. İskeleti hazır bir yapı sunar ve Flask’a göre daha geniş bir framework’tür. Django’da Model-View-Template dediğimiz üçlü bir yapı söz konusudur. Model, veritabanı işlerinin yapıldığı yer. Django’ya özel bir dil ile veritabanı oluşturulur. View, Python kodlarımızı yazdığımız geliştirme ortamı. Template, tasarım kısmıdır.
- Hazır modülleri sayesinde hızlı geliştirme sağlar.
- İlk başlarda Flask kadar alışması kolay değildir.
- Hazır admin paneli vardır.
- Hazır kullanıcı modeli vardır.
- Object Relational Mapping (ORM) yapısına sahiptir.
- Model-View-Template yapısı sunar.
PyScript
PyScript, kullanıcıların Html içerisinde Python kodu çalıştırabileceği yeni bir framework’tür. (pyscript.net)
2.2 Oyun Geliştirme
Python, Pygame gibi oyun geliştirme için kütüphanelere sahiptir. Ancak bu, yılan oyunu gibi basit şeyler geliştirmenize yardımcı olacak temel bir kütüphanedir.
Oyun geliştirme konusunda ciddiyseniz, oyun motorları oluşturmak için en popüler dil olan C++ gibi bir dil denemelisiniz.
2.3 Otomasyon
Python’un muhtemelen en eğlenceli ve en kolay uygulaması otomasyondur. Sizi tekrar eden görevler yapmaktan kurtaracak basit bir otomasyon oluşturmak için yapmanız gereken tek şey, otomatikleştirmeye değer bir şey bulmak ve ardından bu görevi otomatikleştirmenize yardımcı olacak Python kütüphanelerini öğrenmek.
Tekrar eden ya da uzun süren işlerinizi Python ile otomatik hale getirebilirsiniz. Örneğin Instagram takipçilerinizi liste olarak alıp bir dosyaya yazabilirsiniz.
Popüler python otomasyon kütüphaneleri;
- Selenium
- Robot Framework
2.4 Yapay Zeka
Günümüzde en revaçta olan alanlardan bir tanesi de yapay zeka alanıdır. Yapay zeka gibi konularda ilerlemeyi düşünüyorsanız Python dilini seçebilirsiniz. Yine tercih sebeplerinden biri sahip olduğu güçlü kütüphaneleridir.
Bu kütüphaneler ile öngörü, gelecek tahmini, öneri sistemleri veya yüz tanıma gibi alanlarda profesyonel uygulamalar geliştirebilirsiniz. Zaten yapay zeka konusu Python için ata sporu denebilir.
Numpy: Büyük ve çok boyutlu dizileri ya da matrisleri destekleyen ve diziler üzerinde üst düzey matematiksel işlevler barındıran bir Python kütüphanesidir. Numpy ile matematiksel işlemleri veya veri analizini çok pratik şekilde gerçekleştirebiliriz. Oldukça popüler bir kütüphanedir.
Not: Normal Python listelerine göre Numpy array yapısı daha az yer kaplar ve daha hızlı çalışır.
Pandas: Numpy genellikle matematiksel işlemler üzerine kullanılırken Pandas ise veri seti üzerinde analizler yapmak için kullanılır. Numpy ve Pandas birbirinin alternatifi kütüphaneler değil de birbirine yardımcı kütüphaneler diyebiliriz.
TensorFlow: Google tarafından machine learning(makine öğrenmesi) için geliştirilmiş, açık kaynak ve ücretsiz bir yazılım kütüphanesidir.
2.5 Masaüstü Uygulama (GUI)
Python, Grafik Kullanıcı Arayüzü (GUI) uygulamaları oluşturmak için bazı kütüphanelere sahiptir. Bunlardan biri de Tkinter’dır. Ek bir kuruluma gerek olmadan Python içerisinden Tkinter’ı import edip kullanıcı arayüzleri oluşturmaya başlayabilirsiniz. Daha profesyonel arayüz uygulamaları geliştirmeyi düşünüyorsanız PyQt en yaygın olan kütüphanedir.
Popüler arayüz kütüphaneleri;
- Tkinter
- PyQt (Qt Designer ile sürükle bırak tasarım yapılabilir.)
- Kivy (Cross Platform uygulamalar yazmak içindir.)
3. Python’un Avantajları
Python geliştiriciler için birçok avantajlar sağlar. Bunlardan bazıları aşağıda listelenmiştir;
- Kolay yazılır ve okunabilirliği rahattır.
- Object Oriented Programming’i destekler.
- Yazılım geliştirme maaliyetinizi önemli ölçüde azaltır.
- Güçlü kütüphane ve framework’lere sahiptir.
- Geniş bir topluluğa sahiptir ve modül sayısı çok fazladır.
- Veri yapıları işlemleri diğer dillere göre daha pratiktir.
- Hafıza yönetimi otomatik olarak yapılır.
- Aynı kodu farklı işletim sistemleri üzerinde çalıştırabilirsiniz.
- Ücretsiz ve açık kaynaktır.
4. Python Kullanan Şirketler
Günümüzde Pinterest, Youtube, Netflix, Spotify, Instagram, DropBox ve Reddit gibi başarılı şirketlerin çoğu Python’u kullanmaktadır. Toplulukların ve bu tarz şirketlerin desteğiyle Python kullanımı artmakta ve yeni iş imkanları doğurmaktadır.
Yıllara göre Python popülerliğindeki artışı aşağıdaki grafikten görebilirsiniz;
5. Python Eğitimleri
Python öğrenme sürecimde farklı farklı eğitim kaynaklarından yararlandım. Sizlere de faydalı olacağını düşündüğüm linkleri paylaşmak isterim;
6. Deployment
Python projelerinizi yayınlamak için ücretli ve ücretsiz çokça site bulunmaktadır. Deta ve Heroku ücretsiz proje yayınlamak için benim favori sitelerimden. Deta’nın bir güzelliği ise sitesinde “Deta is free for ever.” yazısının yazması. Hiç ücretli paketleri olmamakla birlikte, tamamen ücretsiz bir hizmet.
Projenizi yayınlayabileceğiniz siteler;
8. Some Keywords
oop
decorators
iterators
generators
file
csv
json
http-requests
web-scraping
bot
modules
libraries
pypi
lambda
debugging
interpreter
errors
exceptions
database
data-structures
functions
list-comprehensions
loops
conditions
anaconda
jupyter
selenium
pyqt
tkinter
numpy
pandas
artificial-intelligience
machine-learning
data-science
image-processing
*args
**kwargs
api
flask
django
jinja
sqlalchemy
data-visualisation
testing
automation
robots
game
docstring
virtualenv
sdfdsf
sdfsdf