Python Ders Notları
Problem Çözme Süreçleri
Gündelik akışta karşılaştığımız hemen her olaya problem tanımlamasıyla bakabiliriz. Sabah uyanmak, hazırlanmak gibi pek çok mesele kendi içinde bir akışa dayalıdır. Hava durumuna göre giyinme, günün yoğunluğuna göre kahvaltı yapma gibi olaylar alt olaylara ayrılarak değerlendirilebilir.
Basit bir örnekle açıklayalım: Sabah okul ya da iş için giyeceğiniz kıyafet kirliyse onu hemen yıkayıp kurutmaya çalışmak süre açısından makul değildir. Ne yaparsınız? Daha önceden kirli olan giysiye yıkar, kurutur ve sabah için hazır tutarsınız. Bu olayı farklılaştıran akış senaryoları da konuşulabilir. Bu basit örnekteki sıralama, çözüm, geri bildirim ve geliştirme adımlarını hayatımızdaki hemen her olayda görmek mümkündür.
Bu nedenle olaylara ve problemlere problem çözme süreci üzerinden yaklaşırız.
Problem Çözme Süreci
Bu yedi adım, sağlıklı bir problem çözme sürecini bilimsel yöntemlerle ele alabilme yollarından biridir. Basitten karmaşığa pek çok problemde uygulanabilen, en az maliyetli yaklaşımlardan biridir.
Örnek Uygulama
Türkiye genelinde okul mevcutlarının kalabalık olması güncel bir problem olsun. Bu büyük problemi ele alırken adımları tek bir okulda pilot uygulama olarak test edebiliriz.
1. Problemi tanımlama: Okul mevcudunun bina kapasitesine göre kalabalık olması; sınıf mevcutlarının yönetilebilir düzeyin üzerinde seyretmesi.
2. Alt problemler: Okul bölgesinin geniş olması, bina kapasitesinin yetersizliği, diğer okullardan öğrenci çekilmesi, komşu okulların sorunları nedeniyle bu okula yönelim, donanımsal yeterliliğin fazla olması gibi etkenler alt problem olarak ele alınabilir. Alt problemlere bakılmadan doğrudan mevcudu normale getirmeye çalışmak yanlış ya da verimsiz çözümlere yol açabilir; okul bölgesi çok genişken yalnızca ek bina yapmaya çalışmak bunun tipik örneğidir.
3. Bilgi araştırması: Dünya standartlarında sınıf mevcutları ne düzeydedir? Okullar arası mevcut dengesi nasıl sağlanmaktadır? Bu soruların yanıtları bilimsel kaynaklardan araştırılmalıdır.
4. Çözüm önerileri: Okul bölgesinin nüfus yoğunluğuna göre yeniden planlanması; diğer okulların eksikliklerinin ortaya konarak giderilmesi; adres bölgesi dışından gelen öğrencilerin nedenlerinin araştırılması.
5. Çözümleri test etme: Önerilen çözümlerden biri önce tek bir sınıf ya da şubede pilot olarak uygulanır; sonuçlar gözlemlenir.
6. Geri bildirim toplama: Pilot uygulamanın mevcut duruma etki edip etmediği izlenir; öğretmen, öğrenci ve yönetici görüşleri derlenir.
7. Geliştirme: Pilot uygulama işe yaradıysa diğer sınıf ve okullara yaygınlaştırılır; beklenen sonuç elde edilmediyse yeni alt problemler araştırılır ve süreç yeniden başlatılır.
Küçük ölçekli bir deney, gözlem ve genelleme döngüsü; bu yaklaşım aynı zamanda bilimsel yöntemin özüdür. Bir problemin çözümüne katkı sunmak için büyük bir kurum ya da geniş bir bütçe gerekmez; doğru adımlarla herkes bu süreci işletebilir.
PYTHON VE ALGORİTMA
Problemlerin çözüm süreçlerinde veri toplama, işleme uygulama ve izleme süreçlerinde bilgisayar yazılımları büyük rol üstlenir. Yazılımlar çok kaynaklı verileri toplayıp tutabilir, işleyebilir karar sürecine yardımcı olabilirler.Yazılımlar kodlanırken algoritmik bir süreçle adım adım her şey düşünülerek yazılır.
Problem
çözümünde yazılım teknolojilerini kullanmak
Yazılımlar bilgisayarlarda ide adı verilen araçlarla
yazılır. Python için
Thonny, Jupyter Notebook, VS Code Python idle
kullanılabilir.
Örnek Problemler:
Sınıf Yoğunluğunu belirleyen program
#önce veriler
sinif_alani=42
ogrenci_alani=1.5
ogrenci_sayisi=32
ogrenci_sira=1.2
ogrenci_taburesi=0.9
ogretmen_masasi=1.7
ogretmen_sandalyesi=0.7
# işlemler
sira_alani=(ogrenci_sira+ogrenci_taburesi)*ogrenci_sayisi/2
toplam_alan=ogrenci_alani*ogrenci_sayisi+sira_alani+ogretmen_masasi+ogretmen_sandalyesi
kapasite=sinif_alani/toplam_alan
#karar
#eğer kapasite 1 den büyükse sınıf rahattır
if kapasite>1:
print("Sınıf
Rahattır")
else:
print("Sınıf
kalabalık")
Açıklama:
Yazılımlar problem çözümünde önce veriye ihtiyaç duyarlar. Veriler işlenir işlendikten sonra karar mekanizmaları aracılığıyla gerekli işlemlerde kullanılırlar. Verinin çokluğu alınan kararlardaki doğruluğu arttıran etmenlerden biridir. Veri sağlama teknolojileri geliştikçe yazılımlar daha çok problemi çözebilir hale gelmiştir.
Algoritma:
Bir problemi
çözmek veya bir hedefe ulaşmak için tasarlanan, başlangıçtan bitişe kadar
sıralı, mantıksal ve sonlu işlemler bütünüdür.
Algoritmanın Temel Özellikleri
Başlangıç ve
Bitiş: Her
algoritmanın bir başlangıcı vardır ve işlemler sonlu bir sürede tamamlanır.
Açık ve
Kesinlik: Her adım net,
anlaşılır ve şüpheye yer bırakmayacak şekilde tanımlanmalıdır.
Girdi ve
Çıktı: İşlenmek
üzere veri alır (girdi) ve bir sonuç üretir (çıktı).
Etkinlik: En kısa ve en hızlı yoldan çözüme
ulaşmayı hedefler.
Veri Sağlayıcılar/Değişkenler
Yazılımlarda
veri tutabildiğimiz, işlem yapabildiğimiz yapılardır.
Yalnızca İngilizce isimlendirilirler,
Boşluk içermemeliler,
Sayı ile başlamamalılar,
Birbirinin aynısı olmamalılar
Ondalıklı sayılarda nokta kullanılmalı
Metinsel değişkenler "" çift
tırnak ile tanımlanmalı
sayi1=10 1sayı,Çarpım,
Ad Soyad
sayi2=15
pi=3.14
ad="İbrahim"
soyad="Keskin"
toplam=sayi1+sayi2
carpim=sayi1+sayi2
fark=sayi1-sayi2
bolum=
Örnek:
Ø Kenar ölçüsünü değişkene atayıp
Karenin alanı hesaplayınız.
kenar=25
alan=kenar*kenar
print(kenar)
x=15
y=23
r=5
pi=3.14
h=15
#işlemler
toplam=x+y
fark=x-y
carpim=x*y
bolum=x/y
alan=pi*r*r
hacim=alan*h
# ekrana yazdır
print("Sayıların Toplamı", toplam)
print("Çarpımı",carpim)
print("bölümü",bolum)
print("Farkı",fark)
print("Silindirin Alanı",alan)
print("Silindirin Hacmi",hacim)
DERS 3
Değişken Türleri:
Klavyeden Veri Girişi(input system):
Ders 4
Karar Yapıları:
Ders 5
Karar Yapıları Örnek Kodları
2. Oyun kalan can uygulaması
3- Market harcama uygulaması
4- Şarj durumuna göre davranış uygulaması
5 - 200ml su bardağı ile içilen bardak su adedine göre davranış uygulaması
Ders 7
Listeler
Yazılımlarda farklı veri türlerini tutabilmek için
kullanılan yazılım temel unsurlarındandır.
Python’da köşeli, parentezle başlatılır. Örneğin:
İsimler=[“Ali”,”Ahmet”,”Mert”] şeklinde bir liste oluşturulabilir.
Listelerde farklı veri türleri de bir arada yer alabilir
marketListesi=[“Ekmek”, “Yumurta”,125,358,3,15] gibi.
Listeyi ekrana yazdırma komutu:
adlar=[“Ali”, “Ahmet”, “Mert”] à Liste oluşturuldu.
print(adlar) à
Liste olduğu gibi ekrana yazdırıldı.
Not: Liste elemanları
arasında virgül konulur, metinsel ifadeler çift tırnak ile sayısal ifadeler olduğu
gibi virgül ile yazılır.
Ders 8
Listeye Nesne Ekleme ve Silme Yöntemleri
pop komutu:
adlar=["Ali","Veli","Cem","Aslı","Nur"]
adlar.pop(2) index numarası 2 olan nesne "Cem" silinir ve listeden kaldırılır ayrıca bir değişkene silinen değer atanabilir.
remove komutu:
adlar.remove("Nur") bu komut liste sırasında ilk karşılaştığı "Nur" nesnesini silererek listeden kaldırır.
clear komutu:
adlar.clear() komutu tüm nesneleri silerek listeyi temizler.
Örnek Uygulama:
Döngüler:
Yazılımlarda bir olay birden fazla kez tekrarlanması gerekiyorsa satır satır yazmak yerine aynı iş döngü yardımıyla yapılır.
Örneğin klavyeden 100 kişinin adı soyadı girilerek kaydedilmesi gereken bir uygulamada döngü kullanırız. Kırmızı Sarı Yeşil ışık kontrolünde yine döngü kullanabiliriz.
Döngü komutları For ve While olmak üzere iki çeşittir. Çalışma şekli aynı olmakla birlikte prensip olarak farkları vardır. Biz sadece For döngüsünü göreceğiz.
Yorumlar
Yorum Gönder