Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bilgisayar Programlamasına ve Veri Analizine Giriş - III

Benzer bir sunumlar


... konulu sunumlar: "Bilgisayar Programlamasına ve Veri Analizine Giriş - III"— Sunum transkripti:

1 Bilgisayar Programlamasına ve Veri Analizine Giriş - III
Hüsnü Yenigün Sabancı Üniversitesi Lise Yaz Okulu 2016

2 Sabancı Üniversitesi Lise Yaz Okulu
Modül 3 için Planımız Veri Tipleri Arasında Dönüşüm Koşullu İfadeler (Conditional Statements) Bool Cebri (Boolean) Döngüler (Loops) Sabancı Üniversitesi Lise Yaz Okulu

3 Sabancı Üniversitesi Lise Yaz Okulu
Gerçek Sayılar Gerçek sayılar Örnek >>> Bir sayi giriniz: 5 Bu sayinin yarisi: 2 sayi = input("Bir sayi giriniz: ") print "Bu sayinin yarisi: ", sayi/2 sayi = float(raw_input("Bir sayi giriniz: ")) print "Bu sayinin yarisi: ", sayi/2 >>> Bir sayi giriniz: 5 Bu sayinin yarisi: 2.5 Sabancı Üniversitesi Lise Yaz Okulu

4 Sabancı Üniversitesi Lise Yaz Okulu
Veri Tipleri str() Karakter dizisine dönüştürür ("Husnu") int() Tam sayıya dönüştürür float() Gerçek sayıya dönüştürür complex() Karmaşık sayıya dönüştürür eval() Girdinin değerini hesaplar Sabancı Üniversitesi Lise Yaz Okulu

5 Sabancı Üniversitesi Lise Yaz Okulu
Koşullu İfadeler Programın hangi yönde ilerleyeceğini belirlemek için bir koşul test edilir. Koşul gerçekleşiyorsa program bir yöne; Geçekleşmiyorsa başka bir yöne doğru ilerler. Bunun için if ifadesini kullanırız. Kelime anlamı “eğer” dir Eğer (if) bir koşul gerçekleşiyorsa/doğruysa program bir işi yapar Aksi takdirde (else) yapmaz Sabancı Üniversitesi Lise Yaz Okulu

6 Sabancı Üniversitesi Lise Yaz Okulu
İf-else koşulu Koşul??? Eğer koşul doğru ise Eğer koşul yanlış ise if kodu else kodu Sabancı Üniversitesi Lise Yaz Okulu

7 Sabancı Üniversitesi Lise Yaz Okulu
if-else koşulu: Örnek sayi = int(raw_input("Bir sayi giriniz: ")) if sayi > 5: print "Girdiginiz sayi 5'ten buyuktur " else: print "Girdiginiz sayi 5'ten buyuk degildir" Yazılma Biçimine dikkat! >>> Bir sayi giriniz: 7 Girdiginiz sayi 5'ten buyuktur Bir sayi giriniz: 4 Girdiginiz sayi 5'ten buyuk degildir Sabancı Üniversitesi Lise Yaz Okulu

8 Karşılaştırma Operatörleri
Her bir karşılaştırmadan sonra, bir Bool değeri oluşur “doğru” ya da “yanlış”; “evet” ya da “hayır”; 0 ya da 1 Karşılaştırma Operatörü İşlevi < Küçüktür <= Küçük ya da eşittir > Büyüktür >= Büyük ya da eşittir != Eşit değildir <> == Eşittir Sabancı Üniversitesi Lise Yaz Okulu

9 Zincirleme Koşullu İfadeler
Bazı durumlarda ardarda bir koşul serisi kullanmamız gerekebilir: Örneğin, girilen sayıyı 10’dan küçük, arası, arası, 30’dan büyük şeklinde gruplamak istediğimizi düşünelim. sayi = int(raw_input("Bir sayi giriniz: ")) if sayi <= 10: print "Girdiginiz sayi 10'dan kucuk ya da esittir" if sayi > 10 and sayi <= 20: print "Girdiginiz sayi 11 ile 20 arasindadir" if sayi > 20 and sayi <= 30: print "Girdiginiz sayi 21 ile 30 arasindadir" if sayi > 30: print "Girdiginiz sayi 30'dan bile buyuktur" Sabancı Üniversitesi Lise Yaz Okulu

10 if-elif-else Koşullu İfadeleri
Bu şekilde zincirleme koşullar için elif ifadeleri, yazmasi ve anlamasi daha kolay bir yol saglar. Örnek sayi = int(raw_input("Bir sayi giriniz: ")) if sayi <= 10: print "Girdiginiz sayi 10'dan kucuk ya da esittir" elif sayi > 10 and sayi <= 20: print "Girdiginiz sayi 11 ile 20 arasindadir" elif sayi > 20 and sayi <= 30: print "Girdiginiz sayi 21 ile 30 arasindadir" else: print "Girdiginiz sayi 30'dan bile buyuktur" Sabancı Üniversitesi Lise Yaz Okulu

11 if-elif-else Koşullu İfadeleri
elif ifadelerinde, önceki koşulların yanlış olmasından faydalanabiliriz: Örnek sayi = int(raw_input("Bir sayi giriniz: ")) if sayi <= 10: print "Girdiginiz sayi 10'dan kucuk ya da esittir" elif sayi > 10 and sayi <= 20: print "Girdiginiz sayi 11 ile 20 arasindadir" elif sayi > 20 and sayi <= 30: print "Girdiginiz sayi 21 ile 30 arasindadir" else: print "Girdiginiz sayi 30'dan bile buyuktur" Eğer program buraya geliyorsa, sayımızın 10’dan büyük olduğunu zaten biliyoruz Eğer program buraya geliyorsa, sayımızın 20’den büyük olduğunu zaten biliyoruz Sabancı Üniversitesi Lise Yaz Okulu

12 if-elif-else Koşullu İfadeleri
elif ifadelerinde, önceki koşulların yanlış olmasından faydalanabiliriz: Örneğimizin sadeleştirilmiş hali: sayi = int(raw_input("Bir sayi giriniz: ")) if sayi <= 10: print "Girdiginiz sayi 10'dan kucuk ya da esittir" elif sayi <= 20: print "Girdiginiz sayi 11 ile 20 arasindadir" elif sayi <= 30: print "Girdiginiz sayi 21 ile 30 arasindadir" else: print "Girdiginiz sayi 30'dan bile buyuktur" Sabancı Üniversitesi Lise Yaz Okulu

13 Sabancı Üniversitesi Lise Yaz Okulu
Küçük Bir Ödev Program kullanıcıdan(öğrenciden) 100 üzerinden aldığı notu girmesini istesin. Program 100 üzerinden girilen notu harf notuna çevirsin. Dönüşüm kuralları Not >= 95  A+, Not >= 90  A, Not >= 80  B, Not >= 70  C, Not >= 60  D, Not < 60  F. Ders geçme kuralı F alan öğrenci dersten kalır, diğerleri geçer Program öğrencinin harf notunu ekrana bastırsın ve geçip geçmediğini bildirsin. Sabancı Üniversitesi Lise Yaz Okulu

14 if-elif-else Koşullu İfadeleri
Not = int(raw_input("100 uzerinden notunuzu giriniz: ")) if Not >= 95: harf_notu = 'A+' elif Not >= 90: harf_notu = 'A' elif Not >= 80: harf_notu = 'B' elif Not >= 70: harf_notu = 'C' … elif Not >= 60: harf_notu = 'D' else: harf_notu = 'F' if harf_notu == 'F': print "Harf Notunuz: ", harf_notu print "Uzgunum Kaldiniz:(:(" print "Tebrikler Gectiniz:):)" Sabancı Üniversitesi Lise Yaz Okulu

15 Sabancı Üniversitesi Lise Yaz Okulu
Unutmayın Sona else ifadesi koyun! Bu hiçbir koşulun gerçekleşmediği durumlarda işe yarayacaktır. Aksi takdirde hata mesajı alabilirsiniz Traceback (most recent call last): File "C:/Users/Husnu Yenigun/Documents/classes/lise_yaz_okulu/python/module_3/deneme1.py", line 15, in <module> if harf_notu == 'F': NameError: name 'harf_notu' is not defined Sabancı Üniversitesi Lise Yaz Okulu

16 Sabancı Üniversitesi Lise Yaz Okulu
Başka Örnekler Programımız bizden şifremizi girmemizi istesin Şifremiz: "qwert123" olsun Doğru şifreyi girersek bize "Hoş geldiniz", Aksi takdirde "Yanlış şifre girdiniz" desin. Sabancı Üniversitesi Lise Yaz Okulu

17 Sabancı Üniversitesi Lise Yaz Okulu
Şifre Girme Programı dogru_sifre = "qwert123" girilen_sifre = raw_input("Lutfen sifrenizi giriniz: ") if girilen_sifre == dogru_sifre: print "Hos geldiniz" else: print "Yanlis sifre girdiniz" Sabancı Üniversitesi Lise Yaz Okulu

18 Sabancı Üniversitesi Lise Yaz Okulu
Ne fark Var? dogru_sifre = "qwert123" girilen_sifre = input("Lutfen sifrenizi giriniz: ") if girilen_sifre == dogru_sifre: print "Hos geldiniz" else: print "Yanlis sifre girdiniz" Sabancı Üniversitesi Lise Yaz Okulu

19 Sabancı Üniversitesi Lise Yaz Okulu
Çalıştırırsak >>> Lutfen sifrenizi giriniz: qwert123 Traceback (most recent call last): File "C:/Users/Husnu Yenigun/Documents/classes/lise_yaz_okulu/python/module_3/sifre1.py", line 3, in <module> girilen_sifre = input("Lutfen sifrenizi giriniz: ") File "<string>", line 1, in <module> NameError: name 'qwert123' is not defined Sabancı Üniversitesi Lise Yaz Okulu

20 Ne Yapmamız Gerekiyordu?
>>> Lutfen sifrenizi giriniz: Hos geldiniz >>> Lutfen sifrenizi giriniz: "husnu" Yanlis sifre girdiniz "qwert123 " Ya da raw_input() fonksiyonunu kullanırız. Sabancı Üniversitesi Lise Yaz Okulu

21 Daha Zor Bir Şey Yapalım
Program kullanıcıya doğru şifreyi girmesi için iki hak versin. Kullanıcı ikisinden birinde doğru şifreyi girerse "Hoş geldiniz", Aksi takdirde "Yanlış şifre girdiniz" desin. Sabancı Üniversitesi Lise Yaz Okulu

22 Sabancı Üniversitesi Lise Yaz Okulu
Çözüm dogru_sifre = "qwert123" girilen_sifre = raw_input("Lutfen sifrenizi giriniz: ") if girilen_sifre == dogru_sifre: print "Hos geldiniz" else: girilen_sifre = raw_input("Lutfen sifrenizi tekrar giriniz: ") print "Yanlis sifre girdiniz" Sabancı Üniversitesi Lise Yaz Okulu

23 Ya Üç Hak Vermek İstersek?
dogru_sifre = "qwert123" girilen_sifre = raw_input("Lutfen sifrenizi giriniz: ") if girilen_sifre == dogru_sifre: print "Hos geldiniz" else: girilen_sifre = raw_input("Lutfen sifrenizi tekrar giriniz: ") print "Yanlis sifre girdiniz" Sabancı Üniversitesi Lise Yaz Okulu

24 Sabancı Üniversitesi Lise Yaz Okulu
Döngüler (Loops) Bazen benzer ya da tıpatıp aynı işi defalarca yapmamız gerekir Örnek: 1 ile 10 arasındaki tüm tek tam sayıları bastır tek_sayi = 1 print tek_sayi tek_sayi = tek_sayi+2 Sabancı Üniversitesi Lise Yaz Okulu

25 Sabancı Üniversitesi Lise Yaz Okulu
Döngüler Bilgisayara aynı işlemi defalarca tekrarlamasını söylemenin daha kolay bir yolu var while döngüsü tek_sayi = 1 while tek_sayi <= 10: print tek_sayi tek_sayi = tek_sayi + 2 print "Bitti" >>> 1 3 5 7 9 Bitti Sabancı Üniversitesi Lise Yaz Okulu

26 Sabancı Üniversitesi Lise Yaz Okulu
Ne, Nasıl Oldu? tek_sayi = 1 Kontrol: tek_sayi <= 10 print tek_sayi tek_sayi = tek_sayi + 2 print tek_sayi  print 3 tek_sayi = tek_sayi + 2  tek_sayi = 5 print tek_sayi  print 5 tek_sayi = tek_sayi + 2  tek_sayi = 7  print 1  tek_sayi = 3 tek_sayi = 1 while tek_sayi <= 10: print tek_sayi tek_sayi = tek_sayi + 2 print "Bitti" Sabancı Üniversitesi Lise Yaz Okulu

27 Sabancı Üniversitesi Lise Yaz Okulu
Ne, Nasıl Oldu? Kontrol: tek_sayi <= 10 print tek_sayi  print 7 tek_sayi = tek_sayi + 2  tek_sayi = 9 print tek_sayi  print 9 tek_sayi = tek_sayi + 2  tek_sayi = 11 print "Bitti" tek_sayi = 1 while tek_sayi <= 10: print tek_sayi tek_sayi = tek_sayi + 2 print "Bitti" Sabancı Üniversitesi Lise Yaz Okulu

28 Sabancı Üniversitesi Lise Yaz Okulu
while döngüsü while ile sonsuz döngü x = 1 while x == 1: print "Sonsuza Kadar Giderim" Sonsuza Kadar Giderim Traceback (most recent call last): File "C:/Users/Husnu Yenigun/Documents/classes/lise_yaz_okulu/python/module_3/deneme1.py", line 3, in <module> print "Sonsuza Kadar Giderim" File "C:\Python27\lib\idlelib\PyShell.py", line 1356, in write return self.shell.write(s, self.tags) KeyboardInterrupt Sabancı Üniversitesi Lise Yaz Okulu

29 Kontrollü Sonsuz Döngü
print "Hos Geldiniz!" devam = 'E' sayac = 1 while devam == 'E': print "%d. kez merhaba dunyali" %sayac sayac = sayac + 1 devam = raw_input("Devam etmek icin E giriniz: ") print "Gule Gule:):)" Sabancı Üniversitesi Lise Yaz Okulu

30 Sabancı Üniversitesi Lise Yaz Okulu
Biraz Esnek Olalım print "Hos Geldiniz!" devam = 'E' sayac = 1 while devam == 'E' or devam == 'e': print "%d. kez merhaba dunyali" %sayac sayac = sayac + 1 devam = raw_input("Devam etmek icin E giriniz: ") print "Gule Gule:):)" Sabancı Üniversitesi Lise Yaz Okulu

31 Sabancı Üniversitesi Lise Yaz Okulu
while Döngüsü Koşul tek_sayi = 1 while tek_sayi <= 10: print tek_sayi tek_sayi = tek_sayi + 2 Koşul ??? Eğer koşul yanlış ise Eğer koşul doğru ise koşullu kod Koşullu kod Sabancı Üniversitesi Lise Yaz Okulu

32 Sabancı Üniversitesi Lise Yaz Okulu
Küçük Bir Ödev Program kullanıcıdan bir sayı girmesini istesin Bu sayıyı N isimli bir değişkene tamsayı olarak atasın Bundan sonra 1’den N’e kadar olan tüm çift sayıların toplamını hesaplasın. Toplama N sayısı dahil olmasın Sonucu ekrana bastırsın Formül kullanmamıza gerek yok. Bilgisayar bizim için yapar. Sabancı Üniversitesi Lise Yaz Okulu

33 Peki Biraz Kolaylaştıralım
Program 1’den N-1’e kadar olan pozitif tamsayıları toplasın … + N-1 Bunu bilgisayarımızda nasıl yaparız? Bir anda iki sayıyı toplayabiliriz; örneğin a + b İki değişken kullanmalıyız. O zaman yöntem 1 + 2 = 3 3 + 3 = 6 6 + 4 = 10 Sabancı Üniversitesi Lise Yaz Okulu

34 Tamsayıları Topluyoruz
İki değişken i: 1’den N’e kadar olan sayılar için toplam: toplam için Başlangıçta Henüz hiç toplama yapmadık i = 1 toplam = 0 İlk adım Koşul test edelim i < N ??? Sabancı Üniversitesi Lise Yaz Okulu

35 Tamsayıları Topluyoruz
i = 1 toplam = 0 Eğer i < N toplam = toplam + i i = i +1 Aksi takdirde Bitti, toplam değişkenini bas i < N False True i = 1 toplam = 0 while i < N: toplam = toplam + i i = i +1 print toplam toplam = toplam + i i = i + 1 toplam’ı ekrana bas Sabancı Üniversitesi Lise Yaz Okulu

36 Sabancı Üniversitesi Lise Yaz Okulu
Diğer Kısımlar N = int(raw_input("Bir sayi giriniz: ")) i = 1 toplam = 0 while i < N: toplam = toplam + i i = i+1 print "1'den %d'e kadar olan pozitif tam sayilarin toplami: %d" %(N-1, toplam) Sabancı Üniversitesi Lise Yaz Okulu

37 Kullanıcıyı Pozitif Sayı Girmesi için Zorlayalım
N = 0 while (N < 1): N = int(raw_input(“Pozitif bir tamsayi giriniz: ")) i = 1 toplam = 0 while i < N: toplam = toplam + i i = i+1 print "1'den %d'e kadar olan pozitif tam sayilarin toplami: %d" %(N-1, toplam) Sabancı Üniversitesi Lise Yaz Okulu

38 Kullanıcı Ya Sayıdan Başka Bir Şey Girerse?
>>> Pozitif bir tamsayi giriniz: e Traceback (most recent call last): File "C:/Users/Husnu Yenigun/Documents/classes/lise_yaz_okulu/python/module_4/input_check.py", line 3, in <module> n = int(raw_input("Bir pozitif bir tamsayi giriniz: ")) ValueError: invalid literal for int() with base 10: 'e' Sabancı Üniversitesi Lise Yaz Okulu

39 Sabancı Üniversitesi Lise Yaz Okulu
Şöyle Yapmak Gerekir while True: try: N = int(raw_input(“Pozitif bir tam sayi giriniz:")) except ValueError: print "Sayi girmediniz!" continue else: print "Aferin! Sayi girdiniz" break Sabancı Üniversitesi Lise Yaz Okulu

40 Sabancı Üniversitesi Lise Yaz Okulu
Küçük Ödev Program kullanıcıdan bir sayı girmesini istesin Bu sayıyı N isimli bir değişkene tamsayı olarak atasın Bundan sonra 1’den N’e kadar olan tüm çift sayıların toplamını hesaplasın. Toplama N sayısı dahil olmasın Sonucu ekrana bastırsın Formül kullanmamıza gerek yok. Bilgisayar bizim için yapar. Sabancı Üniversitesi Lise Yaz Okulu

41 Sabancı Üniversitesi Lise Yaz Okulu
Çözüm N = int(raw_input(“Pozitif bir tam sayi giriniz: ")) i = 2 toplam = 0 while i < N: toplam = toplam + i i = i+2 print "1'den %d'e kadar olan cift sayilarin toplami: %d" %(N, toplam) Sabancı Üniversitesi Lise Yaz Okulu

42 Sabancı Üniversitesi Lise Yaz Okulu
Küçük Ödev 2 Program “Toplamlar Programına Hoş Geldiniz” desin Sonra program kullanıcıdan bir sayı girmesini istesin Bu sayıyı N isimli bir değişkene tamsayı olarak atasın Bundan sonra 1’den N’e kadar olan tüm çift sayıların toplamını hesaplasın. Toplama N sayısı dahil olmasın Sonucu ekrana bastırsın Kullanıcıya devam etmek isteyip istemediğini sorsun Devam etmek istiyorsa kullanıcıdan bir sayı girerek aynı şeyleri yapsın Aksi takdirde, program sonlansın Sabancı Üniversitesi Lise Yaz Okulu

43 Sabancı Üniversitesi Lise Yaz Okulu
Çözüm print "Cift Sayilari Toplama Programina Hos Geldiniz" devam = 'E' while devam == 'E' or devam == 'e': N = int(raw_input("Pozitif bir tam sayi giriniz: ")) i=2 toplam = 0 while i < N: toplam = toplam + i i = i+2 print "1'den %d'e kadar olan cift sayilarin toplami: %d" %(N, toplam) devam = raw_input("Devam etmek icin 'E' ya da 'e' tusuna basiniz: ") print "Program Sonlaniyor, Gule Gule" Sabancı Üniversitesi Lise Yaz Okulu

44 Sabancı Üniversitesi Lise Yaz Okulu
for Döngüsü Belirli bir aralıkta tekrar yapmak için kullanılır for i in range(1, 5): print i >>> 1 2 3 4 >>> S a b n c i universite = "Sabanci" for harf in universite: print harf Sabancı Üniversitesi Lise Yaz Okulu

45 Dizideki bir sonraki eleman
for Döngüsü Karakter dizisi (string) universite = "Sabanci" for harf in universite: print harf Dizide eleman var mı? Eğer dizide başka eleman kalmamışsa Döngü Değişkeni Dizideki bir sonraki eleman koşullu kod for dongu_degiskeni in dizi: kosullu kod Sabancı Üniversitesi Lise Yaz Okulu

46 Sabancı Üniversitesi Lise Yaz Okulu
range() Fonksiyonu range(ilk,son,fark) bize bir aralıktaki değerleri veren bir fonksiyondur >>> 1 3 5 7 9 for i in range(1, 10, 2): print i >>> 10 8 6 4 2 for i in range(10, 1, -2): print i Sabancı Üniversitesi Lise Yaz Okulu

47 Sabancı Üniversitesi Lise Yaz Okulu
Örnek for i in range(10, 1, -1): print i >>> 10 9 8 7 6 5 4 3 2 Sabancı Üniversitesi Lise Yaz Okulu

48 Sabancı Üniversitesi Lise Yaz Okulu
Başka Bir Örnek for i in range(1, 10, -1): print i Sonuç ne olurdu? Sabancı Üniversitesi Lise Yaz Okulu

49 Sabancı Üniversitesi Lise Yaz Okulu
break komutu Döngüleri zamanından önce (döngü koşulu yanlış olmadan) sonlandırmaya yarar isim = raw_input("Sadece isminizi giriniz: ") for karakter in isim: if karakter == " ": break print karakter >>> Sadece isminizi giriniz: Husnu Yenigun H u s n Sabancı Üniversitesi Lise Yaz Okulu

50 Sabancı Üniversitesi Lise Yaz Okulu
break Fonksiyonu Koşul Koşul for karakter in isim: if karakter == " ": break print karakter yanlış doğru Break koşulu Döngüden çık doğru yanlış döngü kodu Döngüden çık Sabancı Üniversitesi Lise Yaz Okulu

51 Sabancı Üniversitesi Lise Yaz Okulu
continue Fonksiyonu for x in range(-2,3): if x == 0: continue print 1.0/x Koşul yanlış doğru continue koşulu >>> -0.5 -1.0 Traceback (most recent call last): File "C:\Users\Hüsnü\Desktop\temp\test.py", line 2, in <module> print 1.0/x ZeroDivisionError: float division by zero >>> -0.5 -1.0 1.0 0.5 doğru yanlış döngü kodu Döngüden çık Sabancı Üniversitesi Lise Yaz Okulu

52 Sabancı Üniversitesi Lise Yaz Okulu
Ödev Sayı bulma oyunu Bilgisayar 1 ile 20 ([1,20]) arasında rasgele bir sayı seçer ve programa girer Oyuncu bu sayıyı dört tahminde bulmaya çalışır Birinci, ikinci ve üçüncü tahminlerinde bulamazsa program sayının tahminden büyük mü yoksa küçük mü olduğunu söyler Oyuncu dört hakkında da bilemezse oyunu kaybeder Programın başına aşağıdakini yazın import random sayi = random.randint(1, 20) Sabancı Üniversitesi Lise Yaz Okulu


"Bilgisayar Programlamasına ve Veri Analizine Giriş - III" indir ppt

Benzer bir sunumlar


Google Reklamları