Python Programlama – 1
Python; söz dizimi basit,parantezler yerine girintilerle yazılan,nesne tabanlı çok hoş bir programlama dilidir. Python ile birçok platform da (Unix,Linux,Solaris,Windows) ve birçok alanda (sistem programlama, veritabanı, ağ programlama vb…) geliştirme yapabilirsiniz.Bunu yapan abimiz Guido van Rossum , programlama diline ismini “Monty Python’s Flying Circus” komedi programından vermiş. Gel gelelim python nasıl yazılır,nasıl çalıştırılır kısmına ;
Geliştirme işini Linux’da yapıyorsak; boş bir metin dosyası oluşturup,ilk satırına aşağıdaki komutu yazmamız gerekmektedir.
#!/usr/bin/env python #program kodu buraya...
Metin dosyasını yazdık,bir isim(program.py) ile kaydettik ve çıkış yaptıktan sonra; komut satırından programı çalıştırmak için;
python program.py
Benim gibi siz de backtrack üzerinde çalışma yapıyorsanız; komut satırından “python” yazarak direk python’un komut satırı arayüzüne erişebilirsiniz. Buradan da komutlarınızı çalıştırabilirsiniz. Örneğin;
python
İlk adım ; Merhaba Dünya
print "Merhaba Dünya"
Değişkenler ve Tipler:
Pyhton; nesneye dayalı bir programlama dili olduğu için , programda kullanacağınız değişkenleri en başta tanımlamak zorunda değilsiniz.
Sayılar
Python iki tip sayı formatını destekler,bunlar ; tamsayı (integer) ve kesikli sayılar dediğimiz float sayı tipi. Örnek bir tamsayı değişkeni;
tamsayiDegiskeni = 7
Float sayıları ise iki formatta tanımlayabilriz;
floatDegisken = 12.0 floatDegisken = float(12)
String
String tanımı iki tipte yapılıabilir;
stringDegiskeni = 'uceka' stringDegiskeni = "uceka"
Aralarındaki fark ise; çift tırnaklı gösterimde cümle de içerebilir;
stringDegiskeni = "selam genc, ben bir degiskenim."
Ayrıca stringler, sayılarla birlikte işlem görebilirler;
bir = 1 iki = 2 uc = bir + iki a = "selam" b = "dunya" selamdunya = a + " " + b
Değişken tanımları aynı satırda yan yana da yazılıp yapılabilir;
a, b = 1, 3
Sayı ve string arasında operatör kullanımı desteklenmez;
# Bu komut çalışmaz... print bir + iki + a #aynı anda string ve int çalıştırılmaz
Örnek ;
stringDeg = "selam" floatDeg = 10.0 intDeg = 5 if stringDeg == "selam": print "String: %s" % stringDeg if isinstance(floatDeg, float) and floatDeg== 10.0: print "Float: %d" % floatDeg if isinstance(intDeg, int) and intDeg== 5: print "Integer: %d" % intDeg
Yukarıda ki kod da; “isinstance” ile değişken tipini kontrol ediyoruz.
if isinstance(floatDeg, float) # floatDeg is float ?
Listeler:
Liste yapısı dizi yapısı ile benzerlik gösterir. Değişken tipleri farklı türlerde,istediğiniz çeşitte olabilir.
liste = [2,4,5,8] print(liste[0]) # 1. elemanı yazdır #2 print(liste[1]) # 2. elemanı yazdır #4 print(liste[2]) # 3. elemanı yazdır #5# tüm listeyi yazdırır for x in liste: #listeyi dolaş print x #alt alta yazdır (2,4,5,8)
Listede olmayan(liste dışı) bir şey yazdırmaya çalışırsanız “compile time” hatası alırsınız.
liste= [1,2,3] print(liste[5])
Operatörler;
Aritmetik Operatörler
Diğer programlama dillerinde olduğu gibi, toplama,çıkarma,çarpma ve bölme işlemlerini yapmak mümkün.
sayi = 1 + 2 * 3 / 4.0
Bunun yanı sıra mod alma,üs alma işlemlerine bakalım;
kalan = 16 % 3 print kalan #1 kareAlma = 8 ** 2 kupunuHesapla = 3 ** 3 print kareAlma , kupunuHesapla #64 27
Stringler arasında Operatör Kullanımı
Python’da stringleri birleştirme amacıyla “+” operatörü kullanılabilir.
selamHacı= "selam" + " " + "Hacı</code><code>"
Birden fazla string yazdırmak istiyorsak eğer, string ile integeri birlikte kullanabiliriz.
birdenFazla= "selam " * 5 print birdenFazla #çıktısı; #selam selam selam selam selam
Listede Operatör Kullanımı
Listeler ekleme (+) operatörü yardımı ile birleştirilebilir.
ciftSayilar = [2,4,6,8] tekSayilar = [1,3,5,7] sayilar = tekSayilar + ciftSayilar print sayilar #çıktısı; #[1,3,5,7,2,4,6,8]
String’de kullandığımız gibi listeyi de birden fazla kez yazdırmak istersek;
print [1,2,3] * 3 #çıktısı; #[1,2,3,1,2,3,1,2,3]
String İşlemleri;
Daha önce stringlerin nasıl yazılabileceği konusuna değinmiştik. Örneğin;
a_string = "selam dunya."
Stringler üzerinde gerçekleştirebileceğimiz bazı işlemler mevcut, bir stringin uzunluğunu öğrenmek için;
print len(a_string) # çıktı: 12
Yukarıdaki komutta “a_string” değişkeninin uzunluğunu hesaplarken boşluk karakteri de hesaba katılıyor. Bir stringde ki harfin konumunu öğrenmek için;
print a_string.index("m") #çıktı: 4
“m” karakterinin ilk karakterden olan uzaklığını hesaplıyoruz.Neden 5 değilde 4 gibi düşünülebilir,fakat liste mantığıyla düşünmek gerekiyor. İlk elemanın index(0) olduğu kabul edilmeli. Verilen bir stringde istenilen aralığı yazdırmak için;
print a_string[0:2] #çıktı: sel
Verilen bir stringi büyük veya küçük harflerle yazdırmak istiyorsak, python’un hazır sınıflarından kullanabiliyoruz
print a_string.upper() #çıktı: SELAM DUNYA. print a_string.lower() #çıktı: selam dunya.
Stringin başında veya sonunda bir stringin geçip geçmediğinin kontrolü,boolean matığı ile çözülebilir. Örneğin;
print a_string.startswith("selam") #çıktı: True print a_string.startswith("sel") #çıktı: True print a_string.startswith("elam") #çıktı: False print a_string.endswith("deneme") #çıktı: False
Koşullu İfadeler;
Mantıksal Operatörler
Python’da ki mantıksal operatörlerden “and” ve “or” un kullanımı;
isim = "Ahmet" yas = 23 if isim == "Ali" <strong>and</strong> yas == 23: #iki şartında sağlanması gerekli print "yazdır1...."if isim == "Veli" <strong>or</strong> isim == "Ali": #iki şarttan birisinin sağlanması gerekli print "yazdır2...."
“in” Operatörü
Verilen bir listede olup olmadığının kontrol edilmesi gibi durumlarda kullanılır.
if isim in ["Ali", "Veli"]: print "Senin adın Ali veya Veli"
“is” Operatörü
Çift eşitlik (==) operatör gibi verilen değişkenlerin içeriklerin karşılatırmaz.Sadece kendilerini karşılaştırır.
x = [1,2,3] y = [1,2,3] z = 5 t = 5 print z == t # çıktı: True print x == y # çıktı: True print x is y # çıktı: False
“not” Operatörü
Bir ifadenin değilini(tersini) almak için kullanılır.
print not False #çıktı: True print (not False) #çıktı: True print (not False) == (False) # çıktı: False
if-else-elif ve raw_input
Python’da üç tür şart ifadesi bulunmakta,bunların algoritmik gösterimi;
if <istenilen ifade><strong>:</strong> <çalıştırılacak komutlar> .... .... elif <başka bir ifade><strong>:</strong> #else if <çalıştırılacak komutlar> .... .... else: #default <hiçbiri olmazsa burayı çalıştır> .... ....
Kullanıcı girişi(input) almak için; “raw_input” veya “input” komutu kullanılabilir. “raw_input” komutu Python 3.x sürümlerinden sonrası için “input” halini aldı. Python’un en bilinen ve en çok kullanılan süremleri olan 2.x sürümleri olduğu için benim tavsiyem “raw_input” şeklinde kullanmanız. Kullanıcı girişi oluşturan bir küçük program yazalım. Bunu backtrack de nano editörü ile yazmaya çalışacağım. Öncelikle komut satırına “nano girisDeneme.py” yazalım ve metin editörü ile kodları yazmaya başlayalım…
Burada amacımız; kullanıcının girdi olarak bir şifre girmesi bu şifrenin kontrol edilmesi. En başta parolayı bir değişkene atıyoruz ve program içinde girilen değer ile karşılaştırma yapıyoruz. Kendimiz bir değişken belirleyerek; “raw_input” komutu ile kullanıcının girişi değişkende tutuluyor. Şart ifadelerini kullandığımızda ilk şart cümlemiz herzaman “if” dir, son şart ifademiz ise “else“dir. Dikkat edilirse; şart ifadelerinden sonra bir boşluk bırakılarak karşılaştırma operatörü kullanılıyor ve girilen ifadeden sonra “:” kullanılıyor. Burada karşılaştırma yaparken string yerine değişkenin adını da yazabilirdik. Python program içinde tanımladığımız halde kullanmadığımız değişken için herhangi bir hata üretmeyecektir. O satır yerine aşağıdaki komut da kullanılabilirdi;
if giris == parola:
Önceki örneğe ek olarak araya bir şart ifadesi daya koyduk. Bu sefer değişen şey ortada ki şart koşuluna “elif” dedik, “else if” in kısaltması olarak kullanılan “elif“, birden fazla karşılaştırma olduğu durumlarda if’den sonra else’den önce kullanılır.
Benzer şekilde karşılaştırma ile ilgili bir örnek daha yapalım. Kullanıcıdan üç sayı alalım ve kullanıcıya en büyük sayıyı veren programı yazalım…
Çıktı:
Sonraki yazıda Döngüler,Fonksiyonlar,Sınıf ve Nesneleri anlatmaya çalışacağım…
12 February 2013 at 11:51
Backtrack kullanmadan phyton’u nasıl debug edebiliriz? Ve development tool’u olarak önerebileceginiz tool nedir?
12 February 2013 at 12:05
http://www.python.org/download/ adresinden kullandığınız platforma uygun olan paketi indirip kurabilirsiniz. Sonraki yazılarda değineceğim arayüz kullanarak geliştirme yapıyorsanız ve bir IDE arıyorsanız kendinize,benim önerim; Quickly(direk olarak Python GTK ile geliyor) veya eclipse(şu eklenti ile birlikte). Daha detaylı bilgi için ; http://developer.ubuntu.com/ adresine de göz atabilirsiniz.
12 February 2013 at 13:17
Cok tesekkurler. Bir sorum daha olacakti. Gorsel programlamaya deginecek misiniz?
Bir de phyton’u diger script dilleri ile kiyasladigimizda nereye konumlandirabiliriz. Mesela bi javaScript’e gore artilari ve eksileri neler? Ya da biraz daha az gelismis dil olan vbScript’e gore artilari ve eksileri neler? Piyasada phyton ne kadar araniyor? Ve iyi bir phyton bilen eleman ne kadar degerli? Bu konuda da bir yazi yazarsaniz benim gibi yeni baslayan/baslayacak olan arkadaslara yol gostermis olursunuz.
12 February 2013 at 13:22
Görsel programlamaya 3. veya 4. yazıda değinmeye çalışacağım,örnek programlarla birlikte. Piyasaya yönelik sorduğunuz sorular da önem arz ediyor. Bu konu hakkında sonraki yazıda ayrı bir yer açarak değineceğim.
12 February 2013 at 13:23
Sabirsizlila bekliyor olacagim …