Bilgisayar Programlamasına ve Veri Analizine Giriş - VI Sabancı Üniversitesi Lise Yaz Okulu 2017 7. Ders
Sabancı Üniversitesi Lise Yaz Okulu Modül 6 için Planımız Liste tipi değişkenler Sözlük (Dictionary) tipi değişkenler 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Liste Tipi Değişkenler Birden fazla değeri tek bir değişkende tutabiliriz. Bu değişken tipine “list” adı verilir. Değerler arasında “,” karakteri vardır, ayrıca herşeyi köşeli paranteze [] alırız Örnek: liste1 = [0,2,3,4,5] liste2 = ['a', 'b', 'c', 'd'] liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] Listelerin elemanlarına sıra numaralarını kullanarak erişebiliriz Sıra numarası 0'dan başlar; yani ilk eleman sıfırıncı elemandır. print liste1[1], liste2[0], liste3[2] 2 a biyoloji 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Liste Tipi Değişkenler Listelerde erişime kolaylık sağlayan bir şey de Python’un listelerde geriden saymaya başlayabilmesidir. Örnek: liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] print liste3[0] print liste3[-1] print liste3[-2] print liste3[-3] >>> fizik turkce cografya tarih 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Listeye Eleman Eklemek/Silmek Listelerin içine elementler append() fonskiyonu ile atılır. Elementler del fonksiyonu ile listeden silinebilir. Örnek liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] print liste3[-1] liste3.append("matematik") del liste3[-1] >>> turkce matematik 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Liste Elemanlarına Döngü ile Erişebiliriz Örnek: liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] for ders in liste3: print ders >>> fizik kimya biyoloji tarih cografya turkce 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Listeler Üzerinde İşlemler Örnek: liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] print liste3[::-1] print liste3[2:4] >>> ['turkce', 'cografya', 'tarih', 'biyoloji', 'kimya', 'fizik'] ['biyoloji', 'tarih'] 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Listeler Üzerinde İşlemler Örnek: liste3 = ["fizik", "kimya", "biyoloji", "tarih", "cografya", "turkce"] print liste3[0][0] print liste3[-1][-1] >>> f e 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu split() Fonksiyonu Bu fonksiyon bir cümleyi bırakılan boşluklara göre parçalara ayırıp bir liste oluşturur. Örnek cumle = "Akilli adam aklini kullanir daha akilli adam baskalarinin da aklini kullanir " listem = cumle.split() print listem >>> ['Akilli', 'adam', 'aklini', 'kullanir', 'daha', 'akilli', 'adam', 'baskalarinin', 'da', 'aklini', 'kullanir'] 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu join() Fonksiyonu split() fonksiyonunun tam tersini yapar, bir listenin içindeki elementleri verilen parametre ile birleştirip cümle kurar. Örnek cumle = "Akilli adam aklini kullanir daha akilli adam baskalarinin da aklini kullanir " listem = cumle.split() print " ".join(listem) print ",".join(listem) print "".join(listem) Akilli adam aklini kullanir daha akilli adam baskalarinin da aklini kullanir Akilli,adam,aklini,kullanir,daha,akilli,a dam,baskalarinin,da,aklini,kullanir Akilliadamaklinikullanirdahaakilliadambaskalarinindaaklinikullanir 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sözlük (Dictionary) Veri Tipi Listelere çok benzerler ama her değere belli bir ‘key’, yani anahtar atanır. Bu sözlüklerin içinde değer aramayı çok kolaylaştırır Örnek: gunler = {'Pazartesi': 0, 'Sali':1, 'Carsamba':2, 'Persembe':3, 'Cuma':4, 'Cumartesi': 5, 'Pazar':6} print gunler['Pazartesi'] print gunler['Cumartesi'] >>> 5 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sözlük (Dictionary) Veri Tipi gunler = {'Pazartesi': 'Monday', 'Sali':'Tuesday', 'Carsamba':'Wednesday', 'Persembe':'Thusday', 'Cuma':'Friday', 'Cumartesi': 'Saturday', 'Pazar':'Sunday'} print gunler['Pazartesi'] print gunler['Cumartesi'] >>> Monday Saturday 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Sezar’ın şifresi Arkadaşımız ile şifreli bir şekilde konuşmak istediğimizi varsayalım: Açık mesaj: erkay hoca cok sert Şifreli mesaj: hundb krfd frn vhuw Sezar (Gaius Julius Caesar) gizli mesajlarini bu şekilde şifreleyerek gönderirdi asıl harf a b c d e f g h i j k l m n o p q r s t u v w x y z k=3 (anahtar) a b c d e f g h i j k l m n o p q r s t u v w x y z şifreli harf 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Sezar’ın şifresi Anahtar (k) olarak 1 ile 25 arasında herhangi bir değer kullanılabilir. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a b c d e f g h i j k l m n o p q r s t u v w x y z k=3 a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a b c d e f g h i j k l m n o p q r s t u v w x y z k=9 a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Sezar’ın şifresi Kullanıcıdan 1 ile 25 arasında bir tam sayı girmesini isteyiniz. Bu sizin anahtarınız olacak. Bunu k değişkeninde tutalım Daha sonra bir mesaj girmesini isteyiniz. Her harfi sayısal bir değeri olsun (ör: A0, B1, …) Anahtarı kullanarak, mesajın harflerini tek tek şifreleyeniz. Şifrelemek için her harfi, k sonraki harf ile değiştirelim. k sonraki harfin sayısal değeri 25’dan büyük ise, 26 ile modül alın Boşlukları ve noktalama işaretlerini şifrelemeyin Kolaylık olsun diye küçük harfle çalışabilirsiniz. 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Örnek >>> Anahtari girin: 0 Mesajinizi girin: sabanci Sifreli Mesaj: sabanci Anahtari girin: 1 Sifreli Mesaj: tbcbodj >>> Anahtari girin: 2 Mesajinizi girin: sabanci univ Sifreli Mesaj: ucdcpek wpkx Anahtari girin: 4 Mesajinizi girin: saldirin! Sifreli Mesaj: wephmvmr! 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu İpucu Dictionary tipi değişken kullanabilirsiniz alfabe ={'a':0, 'b':1, 'c':2, 'd':3, 'e':4, 'f':5, 'g':6, 'h':7, 'i':8, 'j':9, 'k':10, 'l':11, 'm':12, 'n':13, 'o':14, 'p':15, 'q':16, 'r':17, 's':18, 't':19, 'u':20, 'v':21, 'w':22, 'x':23, 'y':24, 'z':25} ters_alfabe = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e', 5:'f', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k', 11:'l', 12:'m', 13:'n', 14:'o', 15:'p', 16:'q', 17:'r', 18:'s', 19:'t', 20:'u', 21:'v', 22:'w', 23:'x', 24:'y', 25:'z'} 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Sezar Şifresi Kodu alfabe ={'a':0, 'b':1, 'c':2, 'd':3, 'e':4, 'f':5, 'g':6, 'h':7, 'i':8, 'j':9, 'k':10, 'l':11, 'm':12, 'n':13, 'o':14, 'p':15, 'q':16, 'r':17, 's':18, 't':19, 'u':20, 'v':21, 'w':22, 'x':23, 'y':24, 'z':25} ters_alfabe = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e', 5:'f', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k', 11:'l', 12:'m', 13:'n', 14:'o', 15:'p', 16:'q', 17:'r', 18:'s', 19:'t', 20:'u', 21:'v', 22:'w', 23:'x', 24:'y', 25:'z'} k = int(raw_input("Anahtari girin: ")) mesaj = raw_input("Mesajinizi girin: ") 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Sezar Şifresi Kodu sifreli_mesaj = '' for karakter in mesaj: if karakter not in alfabe: sifreli_mesaj += karakter else: pozisyon = alfabe[karakter] pozisyon = (pozisyon+k)%26 sifreli_mesaj += ters_alfabe[pozisyon] print "Sifreli Mesaj: ", sifreli_mesaj 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sezar Şifresi Çözme Yarışması KURALLAR Size Sezar şifresi kullanılarak elde edilmiş şifreli bir mesaj vereceğiz. Asıl mesajı (şifresiz mesajı) ilk bulan yarışmayı kazanır. Asıl mesajı bulunca: erkays@sabanciuniv.edu adresine gönderin e-posta mesajınızın konusu büyük harflerle asıl mesaj olsun. Şifreli mesaj: tc qjnjz utctg 01.12.2018 Sabancı Üniversitesi Lise Yaz Okulu