Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python Programming Language

Python Programming Language

Python programming language slides for II.Programming Days at Karabuk.

Avatar for halitalptekin

halitalptekin

February 26, 2015
Tweet

More Decks by halitalptekin

Other Decks in Programming

Transcript

  1. $ whoami EDUC Bilgisayar mühendisliği WORK Bilgi güvenliği IDEA Özgür

    yazılım ve açık kaynak tutkunu MEMB TMD, LKD, Octosec LIFE GO, matematik, kriptoloji HOBB A sınıfı amatör telsizci, elektronik, robotik 1
  2. kimdir? ∙ Sorunlar için yaratıcı çözümler üretir ∙ Yaş, cinsiyet,

    ırk, dil, din ayrımı yapmaz ∙ Ürettiği yaratıcı çözümlerin, güzelliğine göre başarı kazanır 3
  3. kimdir? ∙ Sorunlar için yaratıcı çözümler üretir ∙ Yaş, cinsiyet,

    ırk, dil, din ayrımı yapmaz ∙ Ürettiği yaratıcı çözümlerin, güzelliğine göre başarı kazanır ∙ Çözümlerin yanında sistemler üzerinde açık bulur 3
  4. kimdir? ∙ Sorunlar için yaratıcı çözümler üretir ∙ Yaş, cinsiyet,

    ırk, dil, din ayrımı yapmaz ∙ Ürettiği yaratıcı çözümlerin, güzelliğine göre başarı kazanır ∙ Çözümlerin yanında sistemler üzerinde açık bulur ∙ MIT kökenli 3
  5. özgür yazılım? ∙ Siyasi hareket ∙ Çalıştırma, kopyalama, dağıtma, inceleme,

    değiştirme ve geliştirme gibi özgürlükler ile ilgilenir 6
  6. özgür yazılım? ∙ Siyasi hareket ∙ Çalıştırma, kopyalama, dağıtma, inceleme,

    değiştirme ve geliştirme gibi özgürlükler ile ilgilenir ∙ Amaç yazılımları özgür kılmaktır 6
  7. özgür yazılım? ∙ Siyasi hareket ∙ Çalıştırma, kopyalama, dağıtma, inceleme,

    değiştirme ve geliştirme gibi özgürlükler ile ilgilenir ∙ Amaç yazılımları özgür kılmaktır ∙ Çeşitli lisanlar ile sağlanır(GPL, BSD vb) 6
  8. açık kaynak yazılım? ∙ Sadece yazılımın kaynak kodlarının erişilebilir olduğunu

    vurgular ∙ Yazılım geliştirme metodolojisidir ∙ Özgür olmadan da açık kaynaklı olunabilir ancak tersi mümkün değildir 7
  9. açık kaynak yazılım? ∙ Sadece yazılımın kaynak kodlarının erişilebilir olduğunu

    vurgular ∙ Yazılım geliştirme metodolojisidir ∙ Özgür olmadan da açık kaynaklı olunabilir ancak tersi mümkün değildir ∙ Kodları açmak, yazılımı özgür bırakmak için yeterli değildir 7
  10. hikayesi? ∙ 1990 yılında Guido van Rossum tarafından geliştirilmeye başlanmıştır

    ∙ İsmini Monty Python isimli ingiliz gösteri grubundan almıştır 10
  11. hikayesi? ∙ 1990 yılında Guido van Rossum tarafından geliştirilmeye başlanmıştır

    ∙ İsmini Monty Python isimli ingiliz gösteri grubundan almıştır ∙ Özellikle Hacker kültürünün Perl’den sonra sahiplenmesiyle ayrıcalıklı bir duruma gelmiştir 10
  12. hikayesi? ∙ 1990 yılında Guido van Rossum tarafından geliştirilmeye başlanmıştır

    ∙ İsmini Monty Python isimli ingiliz gösteri grubundan almıştır ∙ Özellikle Hacker kültürünün Perl’den sonra sahiplenmesiyle ayrıcalıklı bir duruma gelmiştir ∙ Geliştirilmesi, Python Yazılım Vakfı çevresinde toplanan geliştiriciler ile sağlanmaktadır 10
  13. hikayesi? ∙ 1990 yılında Guido van Rossum tarafından geliştirilmeye başlanmıştır

    ∙ İsmini Monty Python isimli ingiliz gösteri grubundan almıştır ∙ Özellikle Hacker kültürünün Perl’den sonra sahiplenmesiyle ayrıcalıklı bir duruma gelmiştir ∙ Geliştirilmesi, Python Yazılım Vakfı çevresinde toplanan geliştiriciler ile sağlanmaktadır ∙ Ocak 1994 tarihinde 1.0 sürümü yayınlanmıştır 10
  14. artıları? ∙ Kod okunabilirliği ∙ Kolay öğrenme ∙ Sade ve

    basit sözdizimi ∙ Taşınabilir uygulamalar 13
  15. artıları? ∙ Kod okunabilirliği ∙ Kolay öğrenme ∙ Sade ve

    basit sözdizimi ∙ Taşınabilir uygulamalar ∙ İçe bakış ve dökümantasyon 13
  16. artıları? ∙ Kod okunabilirliği ∙ Kolay öğrenme ∙ Sade ve

    basit sözdizimi ∙ Taşınabilir uygulamalar ∙ İçe bakış ve dökümantasyon ∙ Çok geniş kütüphane desteği 13
  17. artıları? ∙ Kod okunabilirliği ∙ Kolay öğrenme ∙ Sade ve

    basit sözdizimi ∙ Taşınabilir uygulamalar ∙ İçe bakış ve dökümantasyon ∙ Çok geniş kütüphane desteği ∙ Hızli geliştirme imkanı 13
  18. artıları? ∙ Kod okunabilirliği ∙ Kolay öğrenme ∙ Sade ve

    basit sözdizimi ∙ Taşınabilir uygulamalar ∙ İçe bakış ve dökümantasyon ∙ Çok geniş kütüphane desteği ∙ Hızli geliştirme imkanı ∙ Özgür yazılım, açık kaynak kodlu 13
  19. neler yapabilirim? ∙ Web uygulaması ∙ Oyun ∙ Günlük araçlar

    ∙ Mobil uygulama ∙ Bilimsel çalışma… 16
  20. kimler kullanıyor? ∙ Google, Yahoo, NASA ∙ Dropbox, Disqus, Mozilla

    ∙ Friendfeed, Reddit, Eventbrite ∙ Walt Disney, Battlefield 2, Civilization 4 17
  21. kimler kullanıyor? ∙ Google, Yahoo, NASA ∙ Dropbox, Disqus, Mozilla

    ∙ Friendfeed, Reddit, Eventbrite ∙ Walt Disney, Battlefield 2, Civilization 4 ∙ Nokia, IBM, CIA … 17
  22. pip Python’un kendi paket yöneticisi: apt-get install python-pip yum install

    python-pip pacman -S python2-pip (python-pip) Temel komutları: pip install <paket_adi> pip search <paket_adi> pip uninstall <paket_adi> pip install -r requirements.txt 19
  23. virtualenv Python bağımlılıkları için izole bir ortam oluşturuyor. Yüklediğiniz paketler

    sistemin genelini etkilemiyor. Paketlerin farklı sürümleri ile çalışma imkanı sağlıyor. pip install virtualenv Temel komutlar: cd <klasor_adi> virtualenv <sanal_ortam_adi> virtualenv -p /usr/bin/python2.7 <sanal_ortam_adi> source <sanal_ortam_adi>/bin/activate deactivate Birleşmenin tam zamanı! pip freeze > requirements.txt pip install -r requirements.txt 20
  24. flask Ufak bir web uygulaması yapmak istiyorum? from flask import

    Flask app = Flask(__name__) @app.route(”/”) def hello(): return ”Hello World!” if __name__ == ”__main__”: app.run() 24
  25. requests API’ler ile kolayca haberleşmek istiyorum? import requests link =

    ’https://api.github.com/user’ r = requests.get(link, auth=(’user’, ’pass’)) r.status_code r.text r.json() 26
  26. multiprocessing Ders sayfasındaki tüm PDF’leri indirmek istiyorum? import requests from

    multiprocessing import Pool links = [”http://a.com/1.pdf”, ”http://b.com/2.pdf”] def saver(link): with open(link.split(”/”)[-1], ”wb”) as ff: ff.write(requests.get(link).content) pool = Pool(8) pool.map(saver, links) pool.close() pool.join() 27
  27. socket Port tarayıcı yazmak istiyorum? import socket for port in

    range(1,1025): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex((remoteServerIP, port)) if result == 0: print ”Port {}: \t Open”.format(port) sock.close() 32
  28. ctypes C veya fortran’da yazdıklarımı doğrudan kullanmak istiyorum? from ctypes

    import * libc = CDLL(”libc.so.6”) print libc.time(None) printf = libc.printf printf(”Hello, %s\n”, ”World!”) 35
  29. fabric Sistem yöneticisiyim, sürekli yapmam gereken bazı işler var? from

    fabric.api import * sudo(”mkdir /var/www”) sudo(”mkdir /var/www/web-app-one”, user=”web-admin”) result = sudo(”ls -l /var/www”) run(”aptitude update”) run(”aptitude -y upgrade”) 36
  30. simplecv from SimpleCV import Image, Color, Display img = Image(’http://i.imgur.com/lfAeZ4n.png’)

    feats = img.findKeypoints() feats.draw(color=Color.RED) img.show() output = img.applyLayers() output.save(’juniperfeats.png’) 42
  31. qr import Image import sys from qr import * img

    = Image.open(”qrgarden.png”) img = img.convert(’RGB’) for y in range(0, 100): for x in range(100): qrtxt = scan(img, 29*module_size*x, 29*module_size*y) print read_qr(qrtxt) 47
  32. nasıl öğrenebilirim? ∙ Learn Python the hard way ∙ The

    Hitchhiker’s guide to Python ∙ Google’s Python class ∙ Python tracks at Codecademy ∙ PySchools ∙ Python Monk ∙ Dive into Python ∙ Think Python ∙ Invent with Python ∙ A byte of Python… 49
  33. nasıl takip ederim? ∙ Python subreddit ∙ Python Weekly ∙

    Pycoder’s ∙ Python planet ∙ Pycon ∙ PyIstanbul ∙ Github… 50