Python Başlangıç

29 Ekim 2014 Çarşamba

Merhabalar, aslında başka bir dil anlatımı yapmayı düşünüyordum ama bu kadar güzel ve şeker tadında bir dil varken sizi başka bir dil ile tanıştırmayı istemedim. Blog üstünden "A'dan Z'ye" herşeyin olması için elimizden geleni yapıyoruz birde sıfırdan başlayan hevesi olan arkadaşlara kaynak olacak bir "python" serisi yapmak istedik umarım yardımcı olur.

Peki nedir bu "python" ? Bizim ne işimize yarar ? 

Sorularınızı duyuyor gibiyim aslında piheçpi gibi şükela ve alt yapısı bu kadar çok gelişmiş bir dil varken neden python diyebilirsiniz. O zaman piheçpiye göre avantajlarını ve olumlu yanlarını şöyle anlatalım;

Python dili hafif ve kolay kullanılabilirlik gösteren bir dildir. Linux ile dosttur, haz verir.

Linux sistemler üstünde eksiksiz ve harikuleyt şekilde çalışır
Sizi piheçpi'nin ";" anlayışından kurtaracak bir dildir dümdüz yazın gitsin, kuralcı değildir.
Package import bir komut kadar uzağınızda, şöyle ki;

Bir klasörü watch etmek istiyorsunuz ve bunun için bir paket lazım yapmanız gereken size lazım olanı araştırıp komut satırına adını "pypi" kullanarak;
pip install watchdog

 komutunu yazmanız işte paket yüklemesi bu kadar basit tabi piheçpiye göre kütüphane ve ihtiyaçları biraz daha fazla ama dediğim gibi öğrendikçe seveneceğiniz güzel bir dil. Paket yüklemelerinide sonraki derslerde elimden geldiğince göstermeye çalışacağım.


Hem PyQt gibi geliştirilesi güzel bir çok uygulamaylada bu uygulamayı pekiştirebilir ve rahat şekilde öğrenebilirsiniz. 

Peki "python" diline başlarken nerden ve nasıl başlamalıyız bu başlıklar ve konu altında elimden geldiği kadar python öğretisi ile sizlere birşeyler katmaya çalışacağım. Genel olarak yazılım diline hakim arkadaşların kısa sürede öğreneceği ve hepimizin bildiği "if,else" ifadelerinden yola çıkacağız ama dediğimiz gibi bazı noktalarda bazı gereksinimlere ihtiyaç duyabiliriz. 

Hem sayısal hem sözel ifadelerle elimden geldiği kadar anlamanız için çabalayacağım. Unutmadan "Buffer, Stack ve Heap overflow" gibi sistemlere hükmeden bugları bulduğumuzda yardımcılarımızdan biriside muhakkak "python" olacaktır.  Tabi ki bu tercihe göre değişir perl kullanmakta elinizde olan bir durum.

( Linux için python install: sudo apt-get install python yahut diğer bileşenlerle beraber kurmak isterseniz sonuna * ekleyerek tüm paketlere çektirebilirsiniz yahut sitesinden download ederekte yükleme gerçekleştirebilirsiniz)

Ve dersimize her zaman ki gibi yazılı diyagramlar üstünden başlayalım her programlama dilinde olduğu gibi python dilinde de ekranımıza küçük bir mesaj yazdırmak isteyelim.
Öncelikle terminalimize "python" komutunu giriyoruz bize açılan alana kısaca;
print "Merhaba Dünya"


Komutuyla ekranımızda Merhaba Dünya yazısını görmüş olacağız deminde söylediğim gibi dümdüz şeker tadında bir dil ";" işaretini piheçpi'de olduğu gibi python'da koymanıza gerek yok. Tabi ki biz bunu bir script dosyası haline getirip o şekilde de kullanabilirdik ki genellikle böyle bir kullanım yapacağız onun içinde şu şekilde ilerleyebiliriz;


#!/usr/bin/python

print "Merhaba Dünya"


Dosyamızı "test.py" olarak kaydettikten sonra,


python test.py

yahut

chmod +x test.py
./test.py

Bu komutlarlada çağırabiliriz. Unutmadan "ı,ş,ğ,ü" gibi karakterler hata verebilir bu yüzden başlangıç satırından hemen sonra aşağıda ki girişi kullanmanızda fayda var diye düşünüyorum. ;

# -*- coding: utf-8 -*-


Peki ya değişken tanımı nasıl olacak ? Onuda şu şekilde anlatalım öncelikle şunu belirteyim python dilinde bir değişken tanımlanırken "$, var" etc. gibi şeylere gerek yoktur direkt olarak değişken tanımı yapabilirsiniz şu şekilde örneklemeye çalışalım.




#!/usr/bin/python

a = 3
b = 4

print " Bu deger a degiskeni: ", a
print " Bu deger b degiskeni: ", b



Evet işte değişken tanımlamak ve satırlar içinde python'da değişken kullanmak bu kadar basit. Python dili bazı yerlerde farklı kütüphane ve tanımlara ihtiyaç duymaktadır piheçpiye oranla tek negatif yanı budur ama diğer taraftan bakacak olursak dümdüz ve kuralcı bir dil olmayışı ile gönlümüzü feth etmiş bir dil diyebiliriz. Kulak aşinası olduğumuz "raspberry pi" gibi küçük bilgisayar tanımlı aletler üstünde de katkısı büyüktür ve olağan şekilde sıklıkla bu makinelerde geliştiriciler tarafından kullanılmaktadır.

Şimdi bir kaç giriş değerleri denemesi yapalım ne de olsa buda zamanla işimize yarayacak bir fonksiyon olacak;
#!/usr/bin/python
ne = raw_input("Adiniz: ")
ne1 = raw_input("Soyadiniz: ")
print "Merhabalar " + ne + " " + ne1

Evet  "raw_input" fonksiyonunu kullanarak ekrana bir çıktı sağlaması yaptık bu ekranda adımızı ve soyadımızı sorup "Merhabalar" diyecek bir script yazmış olduk.

İlk anlatım şimdilik bu kadar diğer derslerde döngüler ve diğer ifadelerle ilgili yazımızla devam edeceğiz özellikle python ile sqlite kullanımı ve django üzerinde fazlaca duracağız. Asıl amacımız burda genel ifadeleri öğrenmek ve varolan bilgileri pekiştirmektir php ve python dili bildiğiniz üzere exploit yazarları için vazgeçilmez iki dildir bunun nedeni hem gelişmiş hemde bir o kadar becerikli diller olmasıdır ilerleyen derslerde exploit nasıl yazılacak ve algoritması nasıl kurulacak bunlarla devam edeceğiz. Elimden geldiği kadar yeni başlayan arkadaşların anlayacağı açık ve net bir dil kullanmaya çalıştım hatamız varsa affola.

Hoşçakalın :)


Share this article :

4 yorum:

  1. selamlar güzel ama örneklerle anlatırsanız daha iyi olur

    YanıtlaSil
  2. raw_input ile sayi değeri aldığımda .. İnt gibi saymadığını biliyorum fakat sonradan int(aldigimsayi) yapsamda yinede if 4 == aldigim sayi yapamıyorum bu bana ilginc gelmiştir nedeni nedir ? input'un otomatik olarak tırnak almış hali oldugunu biliyorumda böyle int( sayi) dönüşümü yapamaz mıyız :d sanırım yapılmıyor çok denedim :d if == karşılaştırmasını görmedi :(( halbu ki raw_input ile aldıgım degeri inte döndürüyorum.. bi altında hemen örnek vericek olursak:

    #!/usr/bin/python


    sayi = raw_input("sayi:")
    int(sayi)
    x = 4
    if sayi == x:
    print("Bildiniz...")
    else:
    print "Bilemediniz :(("

    :d neden int gibi saymadı ? ve karşılaştırma sonucu true algılamadı acaba gelen sayı "4" olarak mı kayıt edildi("" beraber).. eğer öyleyse hiç bir zaman if e sokamam float a döndürdümdede olmadı :d bana bu yeni başladığım için biraz ilginç geldi. Güvenlik için raw_input() kullanılır :( ama ben raw_input ile if == şeyi yapamıyorum bunu nasıl yapabilirim cevaplarsanız memnun olurum :d input() çok sakıncalı siteler için :d yada diger sistemler için :d

    YanıtlaSil
    Yanıtlar
    1. Merhaba, bir de şu şekilde deneyin:

      sayi = int(raw_input("sayi: "))
      x = 4
      if sayi == x:
      print "Bildiniz..."
      else:
      print "Bilemediniz :(("

      Sil
  3. Merhabalar,

    Dostum öncelikle kıssadan hisse bir kod yazmaya çalışalım raw_input kullanmamız tamamdır ama geçenlerde sadece "input" fonksiyonuyla nasıl döndürebilirim ben bu işi diyen arkadaşlar çıkmıştı onlarında bir cevaba ihtiyacı olması vesilesiyle şöyle özetleyelim;

    #!/usr/bin/python

    sef = input("Yasiniz Nedir? ")
    sef = int(sef)

    if sef>0:
    print "iste yasiniz: " ,sef

    --------------------------------------------------------------------------------------

    Bunu girdiğinizde yaşı yazıldığında kişinin yaşını ekrana göktürecektir input fonksiyonuyla bu mümkündür.

    Yukarida ki soruya gelincede orda bir mantık hatası yapmışsın şöyle ki;

    int(sayi) <<<< demişsin ama bu int(sayi) olacak şeyin başına bir değişken atamamışsın halbu ki değişken integer olacak ama en başına bir değişken atamalısın ki o döngü bir ad sahibi olabilsin, anlayacağın şekilde şöyle anlatayım;

    #!/usr/bin/python
    sayi = raw_input("sayi: ")
    sayi = int(sayi)

    if sayi == 4:
    print "Bildiniz..."
    else:
    print "Bilemediniz :(("

    ---------------------------------------------------------------------------

    Mantıken değişken atamadığın bir fonksiyon kullanıyorsun bu mantık hatası, fonksiyonun içine değişken atamışsın ama fonksiyona tanım yapmadığın için havada kalmış;

    " sayi = int(sayi) "

    olmalıydı.

    Yani yukarıda iso'nun söylediğide doğrudur tek bir değişkende hepsini tanıtmış karıştırmayacağınıza inanıyorsanız uygulayabilirsiniz mantık hatası anlatıldığı gibidir.

    Sevgiyle.

    YanıtlaSil

 
Support : Copyright © 2014. Diary of Injector - All Rights Reserved