Bilgisayar Programlamasına ve Veri Analizine Giriş Sabancı Üniversitesi Lise Yaz Okulu 2018 8. Ders
Sabancı Üniversitesi Lise Yaz Okulu Ders 8 için Planımız Liste tipi değişkenler Sözlük (Dictionary) tipi değişkenler 13.01.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, 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 13.01.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 13.01.2019 Sabancı Üniversitesi Lise Yaz Okulu
Listeye Eleman Eklemek/Silmek Listelerin içine elemanlar append() fonskiyonu ile eklenir. 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 13.01.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 13.01.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'] 13.01.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 13.01.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 insan aklini kullanir daha akilli insan baskalarinin da aklini kullanir" listem = cumle.split() print (listem) >>> ['Akilli', 'insan', 'aklini', 'kullanir', 'daha', 'akilli', 'insan', 'baskalarinin', 'da', 'aklini', 'kullanir'] 13.01.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 insan aklini kullanir daha akilli insan baskalarinin da aklini kullanir " listem = cumle.split() print (" ".join(listem)) print (",".join(listem)) print ("".join(listem)) Akilli insan aklini kullanir daha akilli insan baskalarinin da aklini kullanir Akilli,insan,aklini,kullanir,daha,akilli,in san,baskalarinin,da,aklini,kullanir Akilliinsanaklinikullanirdahaakilliinsanbaskalarinindaaklinikullanir 13.01.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']) >>> 5 13.01.2019 Sabancı Üniversitesi Lise Yaz Okulu
Sözlük (Dictionary) Veri Tipi gunler = {'Pazartesi': 'Monday', 'Sali':'Tuesday', 'Carsamba':'Wednesday', 'Persembe':'Thursday', 'Cuma':'Friday', 'Cumartesi': 'Saturday', 'Pazar':'Sunday'} print (gunler['Pazartesi']) print (gunler['Cumartesi']) >>> Monday Saturday 13.01.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: 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 13.01.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 13.01.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. 13.01.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! 13.01.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'} 13.01.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(input("Anahtari girin: ")) mesaj = input("Mesajinizi girin: ") 13.01.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 ) 13.01.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: erkays@sabanciuniv.edu adresine gönderin e-posta mesajınızın konusu büyük harflerle asıl mesaj olsun. Şifreli mesaj: ve slplb wvevi 13.01.2019 Sabancı Üniversitesi Lise Yaz Okulu