Python Programlama – 1

Posted on Updated on

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

python

İlk adım ; Merhaba Dünya

print "Merhaba Dünya"

selam


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 ?

Örnek ;
1w
2w


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…
giris 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:

girisA Ö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.
giris3 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…
uc_sayi Çıktı: uc_sayi1
Sonraki yazıda Döngüler,Fonksiyonlar,Sınıf ve Nesneleri anlatmaya çalışacağım…

Advertisements

5 thoughts on “Python Programlama – 1

    iskoc said:
    12 February 2013 at 11:51

    Backtrack kullanmadan phyton’u nasıl debug edebiliriz? Ve development tool’u olarak önerebileceginiz tool nedir?

      uceka responded:
      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.

        iskoc said:
        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.

        uceka responded:
        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.

        iskoc said:
        12 February 2013 at 13:23

        Sabirsizlila bekliyor olacagim …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s