Ödev 4
Grafik, Kütüphaneler, For döngüleri, Fonksiyonlar
Başlangıç Kodları
Buraya tıklayarak ödev problemlerine ait başlangıç kodlarına ulaşabilirsiniz.
Ön Hazırlık
Grafik kütüphanesinin tüm fonksiyonlarını kullanabilmek için Pillow paketini indirmeliyiz. Daha önce indirmediyseniz aşağıdaki komutu terminalde çalıştırarak Pillow’u bilgisayarınıza indirebilirsiniz.
python -m pip install Pillow==7.1.1
Ödev - Hafta 4
Grafik kütüphanesinin fonsiyonlarının dokümantasyonuna buradan ulaşabilirsiniz.
Egzersiz 1
En büyük ve en küçük sayıyı bulalım!
Kullanıcıdan 3 tane sayı alalım. Bu sayılardan en küçük ve en büyük olanlarını bulup yazdırmak istiyoruz. İki yol ile bu çıktıları verebiliriz:
1) min_max_bul()
fonksiyonunu tamamlayabiliriz.
2) Bir liste oluşturup aldığımız sayıları bu listenin içerisine
ekleyebilir ve sıralama yoluyla gerekli sayıları alabiliriz.
# Örnek Çalışma Şekli
> Bir sayı girin: 5
> Bir sayı girin: 2
> Bir sayı girin: 8
> Fonksiyonla deneyelim!
> En küçük sayı: 2
> En büyük sayı: 8
> Listeyle deneyelim!
> En küçük sayı: 2
> En büyük sayı: 8
İpucu 1: Listeler ile min ve max bulmaya çalışırken, verilen sayıları
sort()
fonksiyonu ile sıralayabilir; sonrasında sıralanmış listeden
istediğimiz sıradaki sayıyı alma görevini de derste öğrendiğimiz gibi
uygulayabiliriz.
İpucu 2: Yukarıdaki liste yöntemine ek olarak, listelere ait min()
ve max()
fonksiyonlarını kullanarak üçüncü bir yol ile en büyük ve en küçük sayıları
belirleyebiliriz.
İpucu 3: Fonksiyonlarımızın sonucunda birden fazla değişkeni main
programa
gönderebiliriz. Aşağıdaki örneği inceleyelim:
def iki_toplama_yap():
a = 4
b = 3
c = 5
num1 = a+b
num2 = a+c
return num1, num2
Ekstra: Geliştirme olarak kullanıcıdan sayı almak yerine, random kütüphanesinden sayılar da alabiliriz!
Egzersiz 2
Canvası Keşfedelim!
Grafik kütüphanesini kullanarak Kanvas üzerinde kullanabileceğimiz fonksiyonlarla gösterilen konumlara yaklaşık yerlere belirtilen boyutlarda robot, kardan adam ve çiçek çizelim. Ek olarak bir de örnekteki konumdan bağımsız olarak rastgele bir yere yazı yazarak “CS101:Merhaba Dünya!” mesajını gösterelim.
Yapacağımız 4 görev olduğu için bunları rastgele uygulamak istediğimizi varsayalım.
Bunun için random kütüphanesini kullanabiliriz. Başlangıç kodunda verilen random.randint(1,4)
fonksiyonu bizim için 1 ile 4 arasındaki sayılardan birini rastgele seçer. (1 ve 4 dahil)
Bu objeleri nasıl çizdireceğiniz konusunda kafamızda soru işaretleri oluşursa, aşağıdaki örneklerde olduğu gibi bu objeleri Grafik kütüphanemizdeki şekilleri kullanarak oluşturabiliriz. Örneğin robotun yüzü ve ağzı bir dikdörtgen (rectangle), gözleri de 2 yuvarlak (oval).
İpucu: Kodumuzla çağırdığımız create_
fonksiyonunun çizeceği ilk şekil kendinden sonra çizilen şekillerle
çakışırsa, önce çizilen altta kalır.
Kullanacağımız bileşenlerin boyut bilgileri başlangıç kodunda verildiği gibidir.
Canvas boyutları: 1000x800
Robot kafası: 200x200 kare
Robot gözleri çapı: 50 piksel
Robot ağzı: 100x25 dikdörtgen
Kardan adam üst gövde çapı: 200 piksel
Kardan adam alt gövde çapı: 300 piksel
Kardan adam gözleri çapı: 50 piksel
Kardan adam ağzı: 100x25 dikdörtgen
Çiçeğin iç daire çapı: 100 piksel
Çiçeğin dış daire çapı: 200 piksel
Yaprağın genişlik çapı: 100 piksel
Yaprağın yükseklik çapı: 30 piksel
Gövde uzunluğu: 250 piksel
Gövde genişliği: 30 piksel
Örnek Görünümler
Yazı:
Robot:
Kardan adam:
Çiçek: