Bilgisayar Programlamasına ve Veri Analizine Giriş Sabancı Üniversitesi Lise Yaz Okulu 2018 7. Ders
Sabancı Üniversitesi Lise Yaz Okulu Modül 5 için Planımız Fonksiyonlar Fonksiyonların Özellikler Fonksiyonları Çağırmak Fonksiyonların Argümanları/Girdileri 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Fonksiyon Nedir? Fonksiyon belirli bir işi yapan kod parçasına denir Fonksiyonun, genel olarak, girdileri bulunur Fonksiyonun adını ve argümanlarını (girdilerini) yazarak, çağırabiliriz Fonksiyon çalışır ve girdileri kullanarak bir takım hesaplar yapar ve bir veya birden fazla sonuç döndürür (çıktı) Bundan sonra, fonksiyon programınızda çağrılmış olduğu yere geri döner 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Örnekler print(), input(), len() daha önce görmüş olduğumuz fonksiyonlardır. Örnek: >>> print("Merhaba Dunya!") Merhaba Dunya! >>> len("Merhaba Dunya!") 14 İki örnekte de "Merhaba Dunya!" bu fonksiyonların argümanıdır. 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Kendi Fonksiyonumuzu Yazalım def Silindir_Hacim(pi_sayisi, r, h): Hacim = pi_sayisi*r*r*h return Hacim pi = float(input("Pi sayisi ne olsun? ")) yaricap = float(input("Silindirin yari capini giriniz: ")) yukseklik = float(input("Silindirin yuksekligini giriniz: ")) silindirin_hacmi = Silindir_Hacim(pi, yaricap, yukseklik) print("Silindirin hacmi = ", silindirin_hacmi) 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Kendi Fonksiyonumuzu Yazalım def Silindir(pi, r, h): Yan_Alan = 2*pi*r*h Taban_Alan = pi*r*r Toplam_Alan = Yan_Alan + 2*Taban_Alan Hacim = pi*r*r*h return Yan_Alan, Taban_Alan, Toplam_Alan, Hacim 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Bir Fonksiyonu Çağırmak def Silindir(pi, r, h): Yan_Alan = 2*pi*r*h Taban_Alan = pi*r*r Toplam_Alan = Yan_Alan + 2*Taban_Alan Hacim = pi*r*r*h return Yan_Alan, Taban_Alan, Toplam_Alan, Hacim print(Silindir(3.14, 3, 5)) print(Silindir(3.14, 4, 10)) print(Silindir(3.1415, 4, 10)) >>> (94.2, 28.259999999999998, 150.72, 141.29999999999998) (251.20000000000002, 50.24, 351.68, 502.40000000000003) (251.32000000000002, 50.264, 351.848, 502.64000000000004) 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Geri Dönen Değerlere Tek Tek Ulaşmak def Silindir(pi, r, h): Yan_Alan = 2*pi*r*h Taban_Alan = pi*r*r Toplam_Alan = Yan_Alan + 2*Taban_Alan Hacim = pi*r*r*h return Yan_Alan, Taban_Alan, Toplam_Alan, Hacim (y_alan,t_alan,top_alan,hacim) = Silindir(3.14, 3, 5) print(y_alan, t_alan, top_alan, hacim) >>> 94.2 28.26 150.72 141.3 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Fonksiyonlarımızı Modül Haline Getirebiliriz Çok sık kullandığımız ve birbiriyle alakalı bir takım fonksiyonları “modül” haline getirip, daha sonra bunları kullanabiliriz. Böylece fonksiyonlar programımızda kalabalık etmezler Daha organize bir fonksiyon kütüphanesi oluşturabiliriz 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Modül Örneği Geometri.py adını verdiğimiz bir dosyada iki fonksiyon tanımlıyoruz def Silindir(pi, r, h): Yan_Alan = 2*pi*r*h Taban_Alan = pi*r*r Toplam_Alan = Yan_Alan + 2*Taban_Alan Hacim = pi*r*r*h return Yan_Alan, Taban_Alan, Toplam_Alan, Hacim def Daire(pi, r): Alan = pi*r*r Cevre = 2*pi*r return Alan, Cevre 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Modüldeki Fonksiyonları Kullanmak “Geometri.py” modülü içerisindeki fonksiyonları nasıl kullandığımızı bir örnekle açıklayalım “geometri_ornekleri.py” adini verdiğimiz programdan Silindir ve Daire fonksiyonlarını kullanalım import Geometri print("Silindirin Yan alani, Taban alani, Toplam alani, Hacmi: ", Geometri.Silindir(3.14, 3, 5)) print("Dairenin alani, Cevresi: ", Geometri.Daire(3.14,3)) 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Ve Sonuç import Geometri print("Silindirin Yan alani, Taban alani, Toplam alani, Hacmi: ", Geometri.Silindir(3.14, 3, 5)) print("Dairenin alani, Cevresi: ", Geometri.Daire(3.14,3)) >>> Silindirin Yan alani, Taban alani, Toplam alani, Hacmi: (94.2, 28.259999999999998, 150.72, 141.29999999999998) Dairenin alani, Cevresi: (28.259999999999998, 18.84) 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Sabancı Üniversitesi Lise Yaz Okulu Ödev Ölçü sistemleri arasında iki taraflı çevirme işlemleri için fonksiyonların olduğu bir modüle yazınız: Sadece yeşil olanlar için Bir program içinde hepsini deneyin Santigrad ve Fahrenheit Mil ve kilometre Inch ve santrimetre, Foot ve santimetre Yarda ve metre, Galon (ABD) ve litre Litre ve mililitre 𝐶= 𝐹−32 /1.8 𝐾𝑚=𝑀𝑖𝑙∗1.609 C𝑚=𝐼𝑛𝑐ℎ∗2.54 𝑔𝑎𝑙𝑜𝑛=𝑙𝑖𝑡𝑟𝑒 ∗3.79 20.11.2018 Sabancı Üniversitesi Lise Yaz Okulu
Bugunün Tarihini Nasıl Buluruz? Bunun için Python’da hazır yazılmış modüller var. Modül bunu ve benzer diğer fonksiyonları kullanmanızı sağlar Modül isminden önce import anahtar kelimesini yazarız. Böylece o modülü program içinde kullanabiliriz Örneğin “datetime” isimli modülü kullanmak için programın başında aşağıdakini yazmamız gerekir. import datetime Örnek kod: >>> 2017-12-05 5 import datetime t = datetime.date.today() print(t) print(t.day)
Diğer Tarih İşlemleri - Detaylar import datetime t = datetime.date.today() gun = t.day ay = t.month yil = t.year t2 = datetime.datetime.today() print(t2) t bir tarih değişkeni; üzerinde fonksiyonlar çalışabilir year yılı, month ayı, day ayın kaçıncı günü olduğunu integer olarak verir t2 de bir tarih değişkeni ama saati de tutuyor. Çıktıyı deneyip görelim >>> 2018-07-23 09:59:21.085959
Diğer Tarih İşlemleri – İki Tarih Arasındaki Farkı Bulma t1 ve t2 iki tarih (datetime) değişkeni olsun. t1 – t2 ifadesi timedelta denilen bir tipten ifadedir. Bunun üzerinde days fonksiyonunu çağırarak aradaki gün sayısını bulabiliriz. fark = t1 – t2 print(fark.days)
Örnek Doğum yılını okuyup kaç yaşında olduğunu bulan bir program yazalım import datetime dy = int(input("Dogum yilinizi giriniz: ")) t = datetime.datetime.today() yas = t.year-dy print ("%d yasindasin" %yas) >>> Dogum yilinizi giriniz: 1990 28 yasindasin http://www.tutorialspoint.com/python/python_date_time.htm
Ödev Programınız sizden doğum tarihinizi gün-ay-yıl olarak girmenizi isteyecek (yıl 4 hane) Önce bugünün tarihini gün-ay-yıl olarak bastıracak (yıl 4 hane) Sonra girilen doğum gününü gün-ay-yıl olarak bastıracak (yıl 4 hane) Daha sonra sizin toplam kaç gündür yaşadığınızı hesaplayıp ekrana bastıracak. Eğer girilen doğum günü bugünden sonra ise hata mesajı yazsın. Eğer girilen doğum günü bugün ise ayrıca doğum günün kutlu olsun desin.
Örnek Çıktı 1 >>> Dogum tarihinizi, GG-AA-YYYY seklinde, giriniz: 17-07-2002 Bugunun tarihi: 24-7-2018 Dogum tarihi: 17-7-2002 7 gun, 0 ay ve 16 yil yasamissiniz 5847 gun yasamissiniz
Örnek Çıktı 2 >>> Dogum tarihinizi, GG-AA-YYYY seklinde, giriniz: 06-12-2018 Bugunun tarihi: 24-7-2018 Dogum tarihi: 6-12-2018 Daha dogmadiniz ki!
Örnek Çıktı 3 >>> Dogum tarihinizi, GG-AA-YYYY seklinde, giriniz: 24-07-2000 Bugunun tarihi: 24-7-2018 Dogum tarihi: 24-7-2000 6570 gun yasamissiniz Dogum gunun kutlu olsun