Bu makale bozuk türkçe içerir, çünkü banane.

Ben hakkında

Ben 26 yaşında bir bilgisayar programcısıyım. 2012'den bu yana çeşitli topluluklarda Python ve web çatısı Django hakkında sunumlar yapmakta ve eğitimler vermekteyim. Linux Yaz Kampı, şimdiki adıyla Özgür Yazılım Kampında iki haftalık sınıflarda birçok öğrenci ve kamu çalışanına gönüllü olarak temel web programcılığı kursu verdim.

Onur Mat ve ben. Sağdaki çeküldeki gibi birisiyim

Python’a nasıl erişilir

GNU/Linux ve OSX bilgisayarlarda Python yüklü olarak gelmektedir. Windows makinelerinizde ise ayrıdan yüklemeniz gerekiyor. Benim için Windows ve diğerlerinin arasındaki en büyük fark budur. Bir işletim sistemini oluşturan bütün araçlar zaten Python ile yapılabilmektedir — yapılmıştır da. Microsoft’u microsoft yapan şey, işletim sistemlerinin içerisinde Python yüklü olarak gelmemesidir.

https://fatiherikli.github.io/fil/

Veri tipleri ve değişkenler

Bir dil öğrenirken her zaman yukarıdan aşağı bakmak, yani tümdengelimler yapmak en faydalısıdır. Konuşurken kullandığımız tarihler ya da sayılar için değişkenler diyebiliriz. Dilin parçası değildirler ancak verilmek istenilen mesajı tamamen ters yönde bile değiştirebilirler.

Temel veri tipleri
You think, therefore you exist

Veri yapısı: Listeler

Diğer progralama dillerindeki Array’lere denk gelse de Python üzerinde listeler biraz daha farklı implement edilmiştir.

Koleksiyon içerisindeki bir öğeye köşeli parantezlerle ulaşılmaktadır.
Koleksiyonlar içerisinde başka koleksiyonlar saklayabiliyoruz demiştik.

Döngüler ve karar yapıları

Bir sonraki veri yapısına geçmeden önce temel birkaç şeyi daha öğrenmemiz gerekiyor. Bunlar programın akışını kontrol etmek için gerekli olan döngüler ve koşullardır.

Eğer — If
For döngüleri

Veri yapısı: Sözlükler

Koleksiyon ya da liste veri yapısından sonra Python üzerinde en çok kullanacağımız veri yapısı sözlükler olabilir. Eğer hatırlarsanız oluşturduğumuz listelerde, içerideki öğelere erişmek için bir indeks vermemiz gerekiyordu. Sözlüklerde bu durum biraz farklı.

Dictionary
Blue neden mavi değil?

Fonksiyonlar

Buraya kadarki örneklerde sadece yukarıdan aşağı satır satır prosedürler tanımlayarak programlar yazdık. Gerçek hayatta projeler geliştirirken ne yazık ki bu şekilde ilerlemek çok mümkün olmuyor. Biraz daha derli toplu bir codebase’imizin olması açısından bazı yapılara ihtiyacımız var. Fonksiyonlar ve sınıflar gibi.

Fonksiyon tanımlamak

Fonksiyonel Programlama

Programımız büyüdüğünde oluşacak karmaşıklığı indirgemek için sınıflar ya da fonksiyonlar kullanmaktayız demiştik. Sınıflara ben bu blog yazısında değinmeyeceğim, çünkü eğer ona girersek nesne tabanlı programlamaya da girmek zorunda kalırız. Ekosistem biraz öngörülenden farklı ilerlemekte, insanlar nesne yönelimli programlama yerine fonksiyonel programlamaya yönlenmektedir.

Prototip
Reduce — Folding

Modüller

Uygulamamız büyürken onu ölçekleyebilmek için bir takım prensiplerden bahsettik. Teorik olarak nasıl ilerleyeceğimizi ögrendik, peki pratik anlamda bunu nasıl tamamlayacağız?

Terminalinizde “python” yazarak yorumlayıcınıza erişebilirsiniz.
random isimli modül
Ben terminal içerisindeyken emacs editörü kullanıyorum.
cat komutu bir dosyanın içeriğini text olarak yansıtır.

Bir modül kurmak

Bir modülün ne anlama geldiğini anladıysanız eğer artık temel python bilginiz var demektir. Çünkü bu dilde her şey bunun üzerine kurulu. Bir web projesinden tutun da masaüstü uygulamasına kadar, her şey birbirinden bağımsız modüller şeklinde geliştirilir.

Sanal Ortam

Bir modül nasıl kurulur konusuna değinmeden önce çok önemli bir husus var atlamamanız gereken. Burayı atlarsanız eğer başınıza taşlar yağabilir. Sanal ortam, yani virtual environment kavramının ne olduğunu açıklamaya çalışacağım. Terminal üzerinde bir yorumlayıcı başlattığınızda işletim sisteminizin kullandığı çalıştırılabilir olan yorumlayıcı ile etkileşim kurarsınız. Sistemin kullandığı paketleri kullanırsınız.

sys.path o derleyici ile alakalı dizinleri getirir.

Çözüm: İzolasyon

Python için birçok izolasyon mekanizması bulunsa da en çok kullanılan ve destek alabileceğiniz olan virtualenv'dir. Adından da anlaşılacağı üzere, size virtual (sanal) bir env (environment—ortam) hazırlar.

Virtualenv kurulumu
Bir environment (ortam) oluşturmak ve onu activate (etkinleşi) etmek
Python 3'ümüz hazır

Bir paket kuralım

Artık gönül rahatlığıyla üçüncü parti paketlerimizi kurabiliriz. Kullanımı basit bir paket önermek istiyorum size denemeler yapmanız için.

Kırmızı ve mavi foton atomaltı parçacıkları

I am a neurologist. I have an ability to kill people. I have done it myself.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store