Programlamaya Giriş

Adı üstünde, bu kitap "hesaplama" üzerine. Konuları işlerken bir yandan da hesap yapacağız. Kaldı ki bu hesaplamaların pek çoğu birkaç adım sürecek. Yani bir hesabın sonucu diğer hesapta kullanılacak. "Hesap" dediğimize bakmayın. Bu bazen dört işlem, bazen de bir dosyadaki veriyi okumak olacak.

Hâl böyle olunca ufak tefek program yazmamız kaçınılmaz. Aslına bakarsanız bu şekilde bir taşla iki kuş vurmak istiyoruz. Hesaplama öğrenirken programlamayı da aradan çıkarmak güzel olur.

Neden Python?

Programlama dilini seçerken farklı seçenekleri konuştuk. Sonunda Python'da karar kıldık. Pek de zor bir karar olmadı. Bir kere Python ücretsiz ve açık kaynak kodlu. Kolayca her bilgisayara yüklenebiliyor. Üstelik bilgisayarın işletim sisteminin Linux, MacOS ya da Windows olması farketmiyor.

Bu bölümde Python ile programlamaya sadece bir giriş yapacağız. Temel kullanımı ve sıkça kullanılan komutları işleyeceğiz. Göreceksiniz bölümler ilerledikçe Python ve programlama bilginiz de artacak. Yapacağımız örnekler sayesinde uygulayarak öğrendiklerinizi pekiştireceğinize inanıyoruz. Ancak yine de şunun altını çizmekte fayda var: Amacımız Python öğretmek değil. Eğer ayrıntılarıyla Python öğrenmek isterseniz, bu konuda tonla kaynak bulabilirsniz. Üstelik bu kaynakların önemli bir kısmı da ücretsiz.

Eğer Python biliyorsanız doğrudan diğer bölümlere geçebilirsiniz. Gerekirse buraya geri dönersiniz. Fakat biz yine de bu bölüme bir göz atmanızı tavsiye ederiz. Yok eğer ne programlama, ne de Python biliyorsanız o zaman bu bölüm tam size göre. Haydi başlayalım.

Deneme-Yanılma

Python uzunca bir süredir hesaplama işleri yapanların tercihi. Bunun başlıca sebebi öğrenmesinin çok kolay olması ve binlerce paketten oluşan kütüphanesi ile her türlü hesaplama işine koşabilmesi.

Python'ın en güzel yanlarından biri etkileşimli komut satırı. "Etkileşimli" demek daha havalı muhakkak ama hesap makinesinden hallice dersek yanlış olmaz. Buyurun size dört işlem.


In [2]:
3 + 2.1*(4.3/5) - 8.5


Out[2]:
-3.694

Bu kadar değil tabii. Komut satırında, tıpkı dört işlem gibi, herhangi bir kod parçacığını denemek mümkün. Mesela a, b ve c diye üç değişken tanımlayabiliriz.


In [5]:
a = 3
b = 2.3
c = 1.7

Artık bu değişkenleri her yerde kullanabiliriz.


In [6]:
a + b + c


Out[6]:
7.0

Ya da komutları deneyebiliriz.


In [2]:
print "Etkileşimli komut satırı harika!"


Etkileşimli komut satırı harika!

Burada gördüğünüz **print** komutu ekrana yazdırmak için kullanılıyor. Çift tırnak içindeki ifade ise bir dize. Dizeleri ilerde ayrıca işleyeceğiz.

Paketler

Python ile programlama yaparken pek çok işi hazır paketler ile halletmek mümkün. Bu paketleri kullanmanın birkaç yolu var. Diyelim ki matematik paketinden $\pi$ sayısını ve kosinüs fonksiyonunu kullanmak istiyoruz.

İlk yol tüm matematiksel nesneleri (sabitler ve fonksiyonlar) eklemek olabilir.


In [7]:
import math
print math.pi
print math.cos(math.pi)


3.14159265359
-1.0

Bu durumda her çağıracağımız nesnenin başına paket ismini (math) eklemmiz gerekiyor. Her seferinde yazmak istemiyorsanız ikinci yolu kullanmak daha uygun.


In [8]:
from math import *
print pi
print cos(pi)


3.14159265359
-1.0

Eğer sadece birkaç sabit ve fonksiyon kullanacaksanız, tüm paketleri değil de gerekli olanları da eklemeniz yeterli. Bunun için

**from** paket **import** nesne

kalıbı kullanılıyor.


In [6]:
from math import pi, cos
print pi
print cos(pi)


3.14159265359
-1.0

Bir kütüphanenin içindeki tüm fonksiyonlara **dir** komutu ile bakabilirsiniz.


In [9]:
dir(math)


Out[9]:
['__doc__',
 '__file__',
 '__name__',
 '__package__',
 'acos',
 'acosh',
 'asin',
 'asinh',
 'atan',
 'atan2',
 'atanh',
 'ceil',
 'copysign',
 'cos',
 'cosh',
 'degrees',
 'e',
 'erf',
 'erfc',
 'exp',
 'expm1',
 'fabs',
 'factorial',
 'floor',
 'fmod',
 'frexp',
 'fsum',
 'gamma',
 'hypot',
 'isinf',
 'isnan',
 'ldexp',
 'lgamma',
 'log',
 'log10',
 'log1p',
 'modf',
 'pi',
 'pow',
 'radians',
 'sin',
 'sinh',
 'sqrt',
 'tan',
 'tanh',
 'trunc']

Asıl önemli kısmı unutmayalım. Herhangi bir nesne hakkında yardım almak için şu üç komuttan birini kullanabilirsiniz.


In [21]:
# Standart açıklama
help(math.cos) 
# Kısa açıklama
math.pi?
# Uzun açıklama
math.cos??


Help on built-in function cos in module math:

cos(...)
    cos(x)
    
    Return the cosine of x (measured in radians).

Yukarıdaki bazı satırlar # işareti ile başlıyor. O satırlar Python tarafından dikkate alınmıyor. Programlama yapan bizlerse bu satırları açıklamalar yapmak, ufak tefek notlar almak için yazıyoruz. İyi bir hesaplamacı ya da programcı daima bu tür yorumlar ile hazırladığı kodu daha iyi anlaşılır hale getirir.

Bir sonraki derste Python programlama dilinde kullanılan veri yapılarından bahsedeceğiz.