Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanTülay Kahya Değiştirilmiş 5 yıl önce
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
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.