Bilgisayar Programlamasına ve Veri Analizine Giriş - VI Hüsnü Yenigün Sabancı Üniversitesi Lise Yaz Okulu 2016
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 14.04.2019 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, bir de [] kullanı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 print liste1[1], liste2[0], liste3[2] 2 a biyoloji 14.04.2019 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 14.04.2019 Sabancı Üniversitesi Lise Yaz Okulu
Listeye Eleman Eklemek 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 14.04.2019 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 14.04.2019 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'] 14.04.2019 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 14.04.2019 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'] 14.04.2019 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 14.04.2019 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'] maks = max(gunler, key=gunler.get) print maks gunler[maks] >>> 5 Pazar 6 14.04.2019 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 14.04.2019 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: husnu hoca cok sert Şifreli mesaj: kxvqx 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 14.04.2019 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 14.04.2019 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. 14.04.2019 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! 14.04.2019 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'} 14.04.2019 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: ") 14.04.2019 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 14.04.2019 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: Yanıma gelin (olduğunuz yerden söylemek yok) Sahnede asıl mesajın ne olduğunu yüksek sesle söyleyin Şifreli mesaj: nwkdhdtonwnakjqln 14.04.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sezar Şifresi Çözme Yarışması import sezar sifreli_mesaj = "nwkdhdtonwnakjqln" for k in range(1,26): desifre_mesaj = sezar.sifrele(sifreli_mesaj,k) print desifre_mesaj 14.04.2019 Sabancı Üniversitesi Lise Yaz Okulu