1 / 54

Temel Kavramlarla Python’da Programlama

Temel Kavramlarla Python’da Programlama. Çağın Dönmez -Gamze Orhon- Göktuğ Serez-Mert Kılıç-Merve Tok. Programlama. Programlama dili , makinalara özellikle de bilgisayarlara verilen yönergeler bütünüdür . Makinaların nasıl davranması gerektiğini programlama dilleri aracılığıyla yaparız .

Download Presentation

Temel Kavramlarla Python’da Programlama

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TemelKavramlarlaPython’daProgramlama ÇağınDönmez-Gamze Orhon-GöktuğSerez-MertKılıç-MerveTok

  2. Programlama • Programlamadili, makinalaraözellikle de bilgisayarlaraverilenyönergelerbütünüdür. • Makinalarınnasıldavranmasıgerektiğiniprogramlamadilleriaracılığıylayaparız. • Kısacasıprogramlama, insanınbilgisayarlailetişimkurmasınıntekyoludur

  3. DerdimiziNasılAnlatırız? • Bilgisayaraderdimizianlatmanın 2 yoluvardır; • Direktolarak ( DüşükSeviyeliProgramlamaDilleri) • Dolaylıolarak(YüksekSeviyeliProgramlamaDilleri)

  4. DüşükSeviyeliProgramlamaDilleri • Sadeceilkelişlemlermevcuttur. • Bilgisayarlarınmimarilerideğişiklikgösterdiğinden her ayrımimariiçinayrıprogramlamadillerimevcuttur. • Yani ‘A’ bilgisayarıiçinyazılmışbirdüşükseviyeliprogramlamadili ‘B’ bilgisayarınataşınamaz. • Makina Dili ve Assembly

  5. Makina Dili • Yapılanbütünişlemlerikilikdüzendeyazılansayılaradayanır. (binary sistem) • Binary sistemde 2 durum vardır: 0 ve 1 • Akımvarveakımyok • Bilgisayarıntercümeolmadananlayabildiğitekdildir.

  6. Assembly • Makinadilindeki 0 ve 1’lerin yerinisayılarvekarakterleralıyor. • Kodunyenidenkullanılabilmesiözelliğinigetiriyor. • Assembler adıverilenbirçevirmensayesindebilgisayarınanlayacağıbirbiçimeyaniMakinadilineçevrilir.

  7. YüksekSeviyeliProgramlamaDilleri • Düşükseviyeliprogramlamadillerinininsanlartarafındankullanılmasıgüçlüğünedeniylegeliştirilmiştir. • Bütünyüksekseviyeliprogramlamadilleribilgisayarmimarisindenbağımsızdır. • Dahakolayanlaşılırvegeliştirilir. • Düşükseviyeliprogramlamadillerinegöre, bilgisayartarafındandahauzunsüredeişlenir. • C, C#, Java, Python….

  8. NesneYönelimliProgramlama • Yapılaneylemedeğil, kullanılannesneyedayanır. • Olayınmantığıyladeğil, verininyapısıylailgilenir. • Örnek: • Nesne -> Araba • Özellikleri : • Renk -> kırmızı • Motor hacmi -> 1300 lt • Beygir -> 90 HP • Yakıttürü -> dizel • …

  9. NesneYönelimliProgramlama CLASS: • Birnesneye ait bütünözelliklerintaslakolaraktanımlandığıbirimdir. • Öyleysenesnebirsınıfa ait özelbirörnektir, yanideğişkenleryerine gerçekdeğerlertutar.

  10. PYTHON

  11. Neden python’u tercih ederiz ? • Platform bağımlı değildir dolayısıyla Windows, Linux ve Mac’te kolaylıkla çalıştırılabilir. • Kullanımı kolay. • Öğrenimi kolay. • Kullanılabilecek kaynak çok fazla. • Bir çok Fortran kütüphanesinin python dili arayüzüvardır.

  12. Neden python’u tercih ederiz ? • Python’da soyutlama işlemi yüksek seviyede kullanılır. • Örnek: intGMP kütüphanesi büyük sayılar. • Syntax kuralları diğer programlama dillerine göre kolaydır.(C/C++/C# veya Java). • Satırların hizalı olması gerekir. Böylece kodları daha anlaşılabilirdir. • Açık kaynak kodlu!

  13. Python IDLE • IDLE, kurulum sırasında python ile birlikte gelir ve kod yazmak için iyi bir düzenleyicidir. • IDLE, Windows, Linux ve Mac’te çalışır. • IDLE için gerekli dökümantasyonları aşağıdaki linkte bulabilirsiniz. http://docs.python.org/library/idle.html

  14. Örnekler : Hello Worldgirdi & çıktı • Print“Helloworld” • ad= raw_input(“Adınız ne?”) Print(ad)

  15. Sayılar • Integers:1, –3, 42, 355, 888888888888888, -7777777777 • Floats: 3.0, 31e12, –6e-4 • Complex numbers : 3 + 2j, –4- 2j, 4.2 + 6.3j • Booleans : True, False • Operators: + (addition), – (subtraction), * (multiplication), / (division), ** (exponentiation), and % (modulus)

  16. Strings • s = “helloworldpython” print s[0] • String’ler sabit objelerdir. • String’lerçevrili olabilir ‘<string>’, “<string>”, ‘’’<string>’’’ . • String’ler+ karakteri ile birbirine eklenebilir ve * karakteri iletekrar edilebilir.

  17. Bölünmüş Stringler >>> word = ‘Help’ >>> word[:2] # İlk iki karakter 'He' >>> word[2:] # İlk iki karakter dışındaki her şey 'lp‘ >>> word[:2] + word[2:] # returns s >>> word[1:100] >>> word[10:] >>> word[2:1] >>> word[-1] # Son karakter 'A' >>> word[-2] >>> word[-2:] # Son iki karakter‘lp' >>> word[:-2] # Son iki karakter dışındaki her şey.

  18. Ayırmak(split) ve yerine koymak(replace) • x = “x.yz.tk.g” • x.split() • x.split(“.”) • x.replace(“x”, ”y”)

  19. Kümeler • Küme yapısı, python’da bir objenin tekliğini ve o kümenin bir elemanı olduğunu belirtmek için kullanılan sıralanması önemli olmayan bir veri tipidir. >>>x = set([1,2,3,1,5,3,2,4,1]) >>>print(x) >>>1 in x • Methods of sets: issubset(), union(), intersection(), difference(), copy(), add(), remove(), discard()

  20. Listeler • Bir liste, string’ler de dahil, tuple’lar, listeler, sözlükler, fonksiyonlar, dosya işlemleri ve her hangi bir sayı türünü içerebilir. >>>[] >>>[1] >>>[1, 2, 3, 4, 5, 6, 7, 8, 12] >>>[1, "iki", 3L, 4.0, ["a", "b"], (5,6)]

  21. Bölünmüş veİndekslenmiş Listeler x = [‘first’, ‘second’, ‘third’, ‘fourth’] >>> x[0] 'first' >>> x[2] 'third' >>> x[-1] 'fourth' >>> x[-2] 'third' >>> x[1:-1] ['second', 'third'] >>> x[0:3] ['first', 'second', 'third'] >>> x[-2:-1] ['third'] >>> x[:3] ['first', 'second', 'third'] >>> x[-2:] ['third', 'fourth'

  22. Liste Fonksiyonları • Bazı fonksiyonlar: • (len, max, and min) • (in, +, and *) • the del statement • the list methods (append, count, extend, index, insert, pop, remove, reverse, and sort) will operate on lists.

  23. Tuple’lar • Tuple’lar değiştirilemeyen listelere benzerler, yani oluşturulduktan sonra değiştirilemezler. • (1, "iki", 3L, 4.0, ["a", "b"], (5, 6)) • Functions are: • (in, +, and *) • len, max, min • index, count • Tuple’larfunctionlist()’i kullanarak listeleri dönüştürebilir.

  24. Sözlükler • Key:value pairs • x = {1:"a", 2:"b", 3:"c", 4:"d"} • (len, del, clear, copy, get, has_key, items, keys, update, and values)

  25. Dosya işlemleri f = open("myfile", "w") >>> f.write("Gerekirse yeni satır karakteri ile ilk satır\n") 44 >>> f.write("Dosyayayazmak için ikinci satır\n") 33 >>> f.close() >>> f = open("myfile", "r") >>> line1 = f.readline() >>> line2 = f.readline() >>> f.close() >>> print(line1, line2)

  26. Fonksiyonlar def function(x, y, z,…): //Operations //.. Return result

  27. Akış Denetimi – if, else if(elif),else x = 5 if x < 5: y = -1 z = 5 elif x > 5: y = 1 z = 11 else: y = 0 z = 10 print(x, y, z)

  28. Akış Denetimi – Basit Döngüler u, v, x, y = 0, 0, 100, 30 while x > y: u = u + y x = x - y if x < y + 2: v = v + x x = 0 else: v = v + y + 2 x = x - y - 2 print(u, v)

  29. Tek satırda takas – Multiple Assignments var1, var2 = 3, 5 var2, var1 = var1, var2

  30. Example: Öklid GCD Algoritması #In python def gcd(a,b): while a: a, b = b%a, a return b //In C intgcd(int a, int b) { int m; while (b != 0) { m = a % b; a = b; b = m; } return a; }

  31. Modüller nelerdir? • Modül,Python tanımlamavecümleleriniiçerenbirdosyadır. • Dosyaadısonekiilemodüladıdır (.py) . • Fibonacci örneği, • http://docs.python.org/tutorial/modules.htmldaha fazlası için...

  32. HesapMakinası • ToplamaÇıkarmaÇarpmaBölmeişlemleriniyapanbirhesapmakinasitasarlayınız • Bu hesapmakinasındakullanıcıdanhangiişlemiyapacağıbilgisialınacak • Alınanbilgileregöre if-else ‘lerleişlemtamamlanacak

  33. Fonksiyonlar • Recursive Fonksiyonlar • FibonnacciSayıları

  34. GRAFİK ARAYÜZÜ

  35. Graphical User Interface (GUI)Grafik Arayüzü

  36. En çok bilinen GUI kütüphaneleri • Tkinter • wxPython • PyQt • Pygame • PyGTK

  37. Tkinter ile wxPython • Sabittir, python kurulumu ile birlikte gelir. • Öğrenmesi kolay • Kötü görünüm • Bazı durularda ekstra kütüphane indirmek gerekebilir. (PMW gibi) • Çok karmaşık işler için uygun değildir. • Araçları(Widget) çok olan büyük • bir kütüphanedir. • Güzel bir görünüme sahiptir. • Esnek bir yapıya sahiptir. • Arada buglar yaratabilir. • İndirilip kurulması gereklidir. • Python 2.7 nin üzerini • desteklememektedir.

  38. Tkinter fromTkinterimport * root = Tk() #Program bu kısma yazılır root.mainloop()

  39. Tkinter fromTkinterimport * root = Tk() myContainer1 = Frame(root) myContainer1.pack() button1 = Button(myContainer1) button1["text"]= "Hello, World!" button1["background"] = "green" button1.pack() root.mainloop()

  40. Tkinter fromTkinterimport * classMyApp: def __init__(self, myParent): self.myContainer1 = Frame(myParent) self.myContainer1.pack() self.button1 = Button(self.myContainer1) self.button1["text"]= "Bir" self.button1.pack(side=LEFT) self.button2 = Button(self.myContainer1) self.button2.configure(text="Iki") self.button2.pack(side=LEFT)

  41. Tkinter self.button3 = Button(self.myContainer1) self.button3.configure(text="Uc", background = "blue") self.button3.pack(side=LEFT) self.label1 = Label(self.myContainer1,text = "Bes") self.label1.pack(side=RIGHT) self.button4 = Button(self.myContainer1) self.button4.configure(text="Dort", background = "green", command=self.Neriman) self.button4.pack()

  42. Tkinter def Neriman(self): print "Neriman" root = Tk() myapp = MyApp(root) root.mainloop()

  43. Tkinter fromTkinterimport * classMyApp: def __init__(self, myParent): self.myContainer1 = Frame(myParent) self.myContainer1.pack() self.labelSayi1 = Label(self.myContainer1, height=5) self.labelSayi1.configure(text="Sayi 1:") self.labelSayi1.pack(side = LEFT) self.entrySayi1 = Entry(self.myContainer1) self.entrySayi1.pack(side = LEFT) self.entrySayi2 = Entry(self.myContainer1) self.entrySayi2.pack(side = RIGHT) self.labelSayi2 = Label(self.myContainer1) self.labelSayi2.configure(text="Sayi 2:") self.labelSayi2.pack(side = RIGHT)

  44. Tkinter self.buttonsum = Button(self.myContainer1) self.buttonsum.configure(text="OBEB Hesapla", background = "green", command=self.OBEB_Hesapla) self.buttonsum.pack(side = BOTTOM, fill=X) def OBEB_Hesapla(self): #Entry den gelen degerler otomatik stringolduguicinint e ceviririz sayi1 = int(self.entrySayi1.get()) sayi2 = int(self.entrySayi2.get()) while sayi1: sayi1,sayi2 = (sayi2%sayi1),sayi1 sonuc = sayi2 printsonuc root = Tk() myapp = MyApp(root) root.mainloop()

  45. Soru • Tkinter kullanarak iki sayının aritmetik ortalamasını hesaplayan uygulamayı yazınız. • Programda bulunması gereken elemanlar, bir Frame, iki Entry, iki Label ve bir Button.

  46. Kod:

  47. Kod:

  48. Referanslar • https://wiki.python.org/moin/TkInter • http://thinkingtkinter.sourceforge.net/ • http://wiki.wxpython.org/Choosing%20wxPython%20over%20Tkinter

  49. Soru – Sezar Şifreleme (CeaserCipher) CeaserCipher bilinen en ilkel şifreleme metodudur. Verilen şifrelenecek yazının (plaintextin) her harfini verilen değer kadar kaydırıyoruz. (shift) Bu sayının 255i geçtikten sonra başa dönmesini sağlamak için mod(256) sını alıyoruz ve şifrelenmiş yazıyı elde ediyoruz.(ciphertext)

  50. Örnek • Plaintext: neriman kaydırma sayısı = 2 • Ciphertext: pgtkocp

More Related