Veri Bilimi İçin Python -1

Büşra Sulukan
15 min readDec 1, 2023

1.GİRİŞ

1.1.Neden Python?

Python, kolay okunabilir ve öğrenilebilir olması, geniş kütüphane desteğine sahip olması, çeşitli uygulama alanlarına sahip olması,kapsamlı belgelendirme kaynaklarının olması, birçok büyük teknoloji şirketi, finans kuruluşu ve bilimsel araştırma kurumu tarafından benimsenmiş olması gibi nedenleri ile veri bilimi alanında en çok kullanılan programlama dillerinden biri haline gelmiştir.

Peki neden veri bilimciler için önemlidir?

  • Hızlı prototip oluşturma, otomasyon görevleri ve çeşitli projeler için etkili bir dil sunması (Araştırma, analiz ve model oluşturma süreçlerini hızlandırarak veri bilimcilerin ve araştırmacıların daha verimli olmalarını sağlaması),
  • Sahip olduğu geniş bir topluluğu ve zengin kaynakları ile öğrenme sürecini desteklemesi ve projelerde karşılaşılan sorunlara çözümler bulunmasını kolaylaştırması,
  • Veri bilimi ve makine öğrenimi için birçok güçlü kütüphaneye sahip olması,

(Örneğin ; Pandas, NumPy, Matplotlib, Seaborn, Scikit-learn,TensorFlow ve PyTorch gibi araçlar, veri analizi, görselleştirme ve çeşitli makine öğrenimi ve derin öğrenme modelleri modelleri oluşturmak için kullanılır.Python’ın sahip olduğu bu kütüphaneler, karmaşık modellerin geliştirilmesini ve eğitilmesini kolaylaştırır.)

  • Veri Analizi ve manipülasyonunda kolaylıklar sağlaması,

(Örneğin ; Pandas kütüphanesi, tablo şeklindeki verilerle çalışmayı kolaylaştırır. Veri setlerini temizleme, dönüştürme ve analiz etme işlemleri için güçlü ve esnek araçlar sunar.)

  • Python ile yazılmış uygulamalar ve modellerin, diğer dillerle entegre edilebilir olması gibi avantajları veri bilimciler tarafından neden tercih edildiğini gösterir.

Bir diğer ifade ile Python, veri bilimcileri ve analistleri için güçlü bir araç seti sunarak, veri odaklı kararlar almak ve karmaşık problemlere çözümler üretmek için etkili bir platform haline gelmiştir.

1.2.Python Kurulumu

A) Anaconda Kurulumu:

Anaconda indirmek icin Anaconda.com sitesinden Products →Indivudual Edition →Download adımlarını takip ederek indirebilirsiniz.

B)Python kurulumu:

Python.org sitesinden Downloads kısmından işletim sisteminize uygun olan kurulumu yapabilirsiniz.

C)Jupyter Notebook kurulumu:

Jupyter.org sitesinden Jupyter Notebook →Install the Notebook adımları takip edilir.

Bir diğer seçenek ise terminale “pip3 install jupyterlab” yazıp calıştırmaktır.Bu komut ile indirme işlemi gerçekleşecektir.Daha sonra Jupyter Notebook u çalıştırmak icin terminale Jupyter notebook yazdığınızda açılacaktır.

1.3.Jupyter Notebook Kullanımı:

Çalışılmak istenilen klasöre gidilir ve sağ üstteki New sekmesinden Notebook seçilir.

Seçilen notebook sayfasında Python 3 (ipykernel) seçilir.Ve artık kodlarımızı çalıştırabileceğimiz, gerektiği zaman notlarımızı alabileceğimiz bir çalışma sayfasına sahibiz demektir.

Başlık Oluşturma/Değiştirme:

Bu işlem için Untitled1 yazısına tıklayarak yeni bir başlık tanımlanır.

Kod Satırı Ekleme:

Bunun için sol üstte yer alan “+” tuşuna basılabilir.

Markdown Hücresi Nedir ve Nasıl Eklenir? :

Jupyter Notebook’ta Markdown hücreleri kullanarak, açıklamalar, başlıklar, listeler, bağlantılar ve diğer metin öğelerini eklemek için kullanılır. Seçili kod satırını ( boş da olabilir) Markdown hücresine dönüştürmek için Sağ üstte “Help” yazısının altında yer alan “Code” seçeneğine tıklanır ve Markdown seçilir.

Kod veya Markdown hücrelerini çalıştırmak için ise play tuşuna basılır ya da kısayol olarak “CTRL + ENTER” kullanılır.

Markdown Özellikleri Nelerdir?

  1. Başlıklar: Başlıkları oluşturmak için # işareti kullanılır ve yazı ile arasında bir boşluk bırakılır. Başlık seviyesi arttıkça ( # sayısı arttıkça), başlık boyutu küçülür.
  2. Metin Biçimlendirme:İtalik, kalın veya kod gibi metin biçimlendirmelerini yapmak için özel işaretleme kullanılır.
  • italik* veya _italik_
    **kalın** veya __kalın__
    `kod`

3. Listeler: Sırasız ve sıralı listeler oluşturmak için - ve 1., 2., ... gibi işaretler kullanılır.

  • Madde 1
    - Madde 2
    — Alt Madde
    1. Numaralı Madde 1
    2. Numaralı Madde 2

4. Bağlantılar: [Metin](http://www.example.com)

5.Resimler: ![Alternatif Metin](resim_url)

2.Python Dilinin Temelleri

2.1.Python Veri Tipleri Nelerdir?

  • int (integer) : Tam sayı veri tipi,
  • float : Ondalıklı sayı veri tipi,
  • str (string) : Metinsel veya karakter ifadelerini içeren veri tipi,
  • bool (boolean) : Mantıksal ifadeler (Doğru ve Yanlış) içeren veri tipidir

Not: Veri Tipi Öğrenilmek İstendiğinde ; type () fonksiyonu kullanılmalıdır.

2.2.Veri Tiplerini Dönüştürme

2.2.1-Python Sayısal Veri Tipini Metinsel Veri Tipine Dönüştürme

sayi=37 #sayi isimli tamsayı değişkeni metinsel ifadeye dönüştürelim.

sayi=str(sayi) #sayi isimli değişkeni metinsel ifadeye dönüştürüp tekrar sayi değişkenine atadık.

print(type(sayi)) #veri tipini str olarak yazacaktır.

2.2.2-Python Metinsel Veri Tipini Sayısal Veri Tipine Dönüştürme

yazi=”1453" #yazi isimli değişkene 1453 değerini atadık ve tipi str oldu.(Not: Tırnak içerisinde yazılan sayılar python tarafından string(metin) değer olarak tanımlanır.)

yazi=int(yazi) #yazi isimli değişkeni sayısal veri tipine dönüştürdük ve tekrar yazı değişkenine atadık.

print(type(yazi)) #yazi isimli değişkenin veri tipini ekrana yazdırdık ve int değeri yazdırıldı.

2.3.Veri Yapılarına Giriş

2.3.1.SAYILAR :

Python’da sayılar temel olarak üç türdedir: Tam sayılar (integers), Ondalıklı sayılar (floats) ve karmaşık sayılar (complex).

Örnek:

x = 5 # Tam sayı
y = 2.5 # Ondalıklı sayı
z = 1 + 2j # Karmaşık sayı

2.3.2.KARAKTER DİZİLERİ(STRINGS):

Stringler, metin verilerini temsil etmek için kullanılır. Tek tırnak (‘) veya çift tırnak (“) içinde yazılır.

Örnek:

mesaj = ‘Merhaba, Dünya!’

string = “95454”

  • Stringler üzerinde birçok metod bulunur. Örneğin:

cumle = “Bu bir örnek cümledir.”
print(cumle.lower()) # Küçük harfe çevirme
print(cumle.upper()) # Büyük harfe çevirme
print(cumle.split()) # Boşluklara göre ayırma

2.3.3.LİSTE(LIST):

Listeler, birden çok öğenin bir araya getirilmesini sağlar. İndekslenmiş ve değiştirilebilirler.

  • Değiştirilebilir.
  • Sıralıdır, index işlemleri yapılabilir.
  • Kapsayıcıdır.

liste = [1, 2, 3, “dört”, 5.0]

2.3.4.SÖZLÜK(DICT):

Sözlükler, anahtar-değer çiftlerini içerir. Verileri anahtarlarla ilişkilendirir.

  • Değiştirilebilir.
  • SIRASIZDIR(3.7 SONRASI SIRALIDIR.)
  • Kapsayıcıdır.

sozluk = {“anahtar1”: “değer1”, “anahtar2”: 42, “anahtar3”: [1, 2, 3]}

2.3.5.DEMET(TUPLE):

Demetler, değiştirilemeyen (immutable) sıralı veri yapılarıdır.

  • DEĞİŞTİRİLEMEZ.
  • Sıralıdır, indexleme işlemleri yapılabilir.
  • Kapsayıcıdır.

demet = (1, 2, “üç”)

2.3.6.KÜMELER(SETS):

Kümeler, benzersiz öğeleri içeren sırasız koleksiyonlardır.

  • Değiştirilebilir.
  • SIRASIZ VE EŞSİZDİR.
  • Kapsayıcıdır.

kume = {1, 2, 3, 3, 4, 5}

NOT: Liste,tuple,set ve dictionary veri yapıları aynı zamanda Python Collections(Arrays) olarak da adlandırılır.

2.4.1. Print Fonksiyonu Kullanımı

1- Herhangi bir metni yazmak için aşağıdaki yöntemler kullanılır.

print(“Ekrana Yazdırılacak Metin Girilir”)

#veya

print(‘Ekrana Yazdırılacak Metin Girilir’)

#veya

print(“””Ekrana Yazdırılacak Metin Girilir”””)

#yukarıdaki üç komut aynı işlemi yapmaktadır.

2- Herhangi bir değişkeni ekrana yazdırmak için aşağıdaki yöntem kullanılır.

Değişkenler ekrana yazdırılırken tırnak işareti kullanılmaz. Değişken ismi parantez içerisine aynen yazılmaktadır.

sayi=3
print(sayi)

Örneğin: Birden fazla elemanı print paremetresi kullanarak yan yana yazdıralım.

print(“Ocak”,”Şubat”,”Mart”,”Nisan”,”Mayıs”,”Haziran”,”Temmuz”,”Ağustos”,”Eylül”,”Ekim”,”Kasım”,”Aralık”)

“”” Ekrana

Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

yazacaktır.”””

3- Değişken ile herhangi bir metni ekrana yazdırmak için , (virgül) işareti kullanılmaktadır.

Örneğin: Kullanıcıdan bir sayı istedik ve bu sayının ne olduğunu “Girilen sayı = 5 “ şeklinde göstermek için kullanmak istiyoruz:

sayi=5
print(“Girilen Sayı= “,sayi)

#Ekrana aşağıdaki şekilde yazılacaktır.
Girilen Sayı= 5

2.4.2.Print Fonksiyonu ile Alt Satıra Geçme

Print fonksiyonu içinde alt satıra geçmek için “ \n “ parametresi kullanılmaktadır. En çok kullanılan parametrelerden biridir.

Örneğin:

print(“Madde 1 \nMadde 2 \nMadde 3”)

Bu kodun çıktısı alt alta yazılmış şekilde aşağıdaki gibi olacaktır..

Madde 1
Madde 2
Madde 3

2.4.3.Print Fonksiyonu ve End Parametresi

Print fonksiyonu içerisinde end parametresini bulundurmaktadır. Varsayılan olarak bulundurulan end parametresi alt satıra geçme işlemi için kullanılmaktadır. Yani hiçbir değer yazmasak bile bizim görmediğimiz bir end parametresi bulunmakta ve alt satıra geçme işlemi yapmaktadır. Biz end parametresini kullanarak varsayılan değeri değiştirebiliriz. Örneğin boşluk bırakarak yazıları yan yana yazdırma işlemi yapabiliriz.

Örnek:

print(“Merhaba”,end=” “)
print(“medium.com”)

#Ekrana Merhaba meduium.com yazacaktır.

#end parametresini kullanmadan çalıştırsaydık aşağıdaki örnekteki gibi olacaktı.

print(“Merhaba”)
print(“medium.com”)

“”” Ekrana

Merhaba
medium.com

yazacaktı. Biz alt alta yazmasını engelledik yan yana yazmasını sağladık.
“””

2.4.4.Print Fonksiyonu ve Sep Parametresi

Print fonksiyonu içerisinde birden fazla eleman olabileceği ayları yazdırılarak gösterilmişti. Bu parametre ile birden fazla elemanı yazdırırken aralarına istediğimiz karakteri koyma işlemi yapabileceğiz. Örneğin yukarıdaki örneğimizde ayları yazdırdığımızda aralarında birer boşluk atarak ekrana yazma işlemi yapmıştı. Biz aralarına virgül veya istediğimiz herhangi bir karakteri yazdırmak ister isek sep parametresini kullanırız.

print(“Ocak”,”Şubat”,”Mart”,”Nisan”,”Mayıs”,”Haziran”,”Temmuz”,”Ağustos”,”Eylül”,”Ekim”,”Kasım”,”Aralık”,sep=”,”)

“”” Ekrana

Ocak,Şubat,Mart,Nisan,Mayıs,Haziran,Temmuz,Ağustos,Eylül,Ekim,Kasım,Aralık

şeklinde yazacaktır.”””

2.4.4.Print Fonksiyonu ve Format Metodu

Format metodu biçimli olarak yazdırmak için kullanılmaktadır. Daha doğrusu yazdırma işlemlerinde karmaşayı önlemek içinde kullanılır.

Formatlı kullanımda ekrana yazdırılacak değerler {0} ‘dan başlayarak artarak eleman sayısına göre devam etmektedir. Çift tırnaktan sonra .format yazılır ve içerisine sırasıyla ya değişken ya da değerler girilerek 0. indeksten itibaren başlayarak değerleri yazma işlemi yapar.

print(“Birinci sayı= {0} İkinci Sayı= {1}”.format(2,5))

#Ekrana
#Birinci sayı= 2 İkinci Sayı= 5
#yazacaktır.

2.5. “in” Operatörü

in Operatörü

Pythondaki in operatörü , bir elemanın başka bir listede,demette veya stringte (karakter dizileri) bulunup bulunmadığını kontrol eder. Kullanımı şu şekildedir;

In [3]:

“a” in “merhaba”

Out[3]:

True

In [4]:

“mer” in “merhaba”

Out[4]:

True

In [5]:

“t” in “merhaba”

Out[5]:

False

In [6]:

4 in [1,2,3,4]

Out[6]:

True

In [7]:

10 in [1,2,3,4]

Out[7]:

False

In [8]:

4 in (1,2,3)

Out[8]:

False

2.6. Python Veri Girişleri

Python programlama dilinde veri girişi input() fonksiyonu ile yapılmaktadır. Bu fonksiyon ile kullanıcıdan veri alırken aldığımız veri bir değişkene atanmak zorundadır.

İnput fonksiyonu kullanıcıdan metinsel ve sayısal veriler almak için kullanılabilmektedir. Bu kullanım çeşitlerini örnekler üzerinde inceleyeceğiz.

2.6.1.Metinsel Veri Girişi

İnput fonksiyonunu kullanırken bir değişkene atanması gerekmektedir.

degiskenismi=input(“Kullanıcıya Gösterilecek Metin”)

Örnek:

Program bize Lütfen İsminizi Giriniz diye sorduğunda biz Büşra girersek program bize Hoşgeldin Büşra yazacaktır. İstediğiniz ismi girdiğinizde o isme hoşgeldin yazma işlemi yapacaktır.

isim=input(“Lütfen İsminizi Giriniz”)

print(‘’Merhaba’’,isim)

2.6.2. Sayısal Veri Girişi

İnput fonksiyonuna herhangi bir işlem yapmaz isek metinsel veri girişi şeklinde alacaktır. Biz metinsel verilerin türünü int() fonksiyonu kullanarak sayısal veri türüne çevireceğiz. Burada kullanıcıdan veriyi alırken input() fonksiyonu’nu int() fonksiyonu içerisinde alarak kullanacağız ve aldığımız veri sayısal ifadeye dönüşmüş olacak.

degiskenismi=int(input(“Lütfen sayısal veri giriniz”))

Örnek:

birinciSayi=int(input(“Lütfen Birinci Sayıyı Giriniz”))

ikinciSayi=int(input(“Lütfen Birinci Sayıyı Giriniz”))

sayilarinToplami=birinciSayi+ikinciSayi

print(“Sayıların Toplamı=”,sayilarinToplami)

2.7. Fonksiyonlar

Fonksiyonlar, belirli bir işlevi yerine getiren ve tekrar kullanılabilir bloklar kodu temsil eder. Fonksiyonlar, kodunuzu modüler hale getirir, okunabilirliği artırır ve aynı işlemleri tekrar tekrar yazmaktan kaçınmanıza yardımcı olur.

def fonksiyon_adı(parametre1, parametre2, …):
# Fonksiyonun içeriği
return sonuç

  • def: Fonksiyonun başlangıcını belirtir.
  • fonksiyon_adı : Fonksiyonun adıdır ve özel bir kurala tabi değildir, ancak tanımlı adlandırma kurallarına uygun olması önerilir.
  • (parametre1, parametre2, …):Fonksiyonun giriş parametrelerini belirtir. Parametreler opsiyoneldir.
  • : : Fonksiyon tanımının sonunu belirtir.
  • return: Fonksiyonun bir değer döndüreceği yer. Opsiyoneldir.

Örnek:

Fonksiyon Tanımlama

def calculate(x):

print(x*2)

Yukarıdaki şekilde basit bir fonksiyon tanımlaması yapılır, bu fonksiyon içine aldığı sayıyı iki ile çarpar . Daha sonra kullanılmak istediğinde öneğin; calculate(5) şeklinde fonksiyon çağrılır ve çıktısı 10 olur.

İki Argümanlı/Parametreli Fonksiyon Tanımlama

def summer(arg1,arg2):

print(arg1 +arg2)

summer(7,8)

çıktı : 15 olur.

2.7.1.Docstring

Docstring, fonksiyonlarımıza herkesin anlayabileceği şekilde bilgi ekleme metodudur. Fonksiyonların docstringlerine ulaşmak için fonksiyonun başına ? konulur.

2.7.2.Fonksiyonların Statement/Body Bölümleri

Pythonda oluşturulan fonksiyonların yapısı aşağıdaki bölümleri içerir:

  1. Başlık (Function Header): Başlık, fonksiyonun tanımlandığı yerdir ve şunları içerir:
  • def anahtar kelimesi: Bir fonksiyon tanımlandığını belirtmek için kullanılır.
  • fonksiyon_adi: Fonksiyonun adıdır. Bu ad, fonksiyonun çağrılması için kullanılır.
  • parametreler: Fonksiyonun girdi (parametre) değerlerini alır. Parametreler, parantez içinde virgülle ayrılmış şekilde tanımlanır. Ancak bir fonksiyon parametresiz olabilir veya birden fazla parametre alabilir.

2. Gövde (Function Body): Gövde, fonksiyonun gerçek işini yaptığı yerdir. Bu bölümde fonksiyonun yapması gereken işlemler, ifadeler ve kodlar bulunur. Gövde genellikle girintili bir şekilde tanımlanır ve fonksiyonun amacına uygun olarak kod blokları içerebilir.

3. Dönüş İfadesi (Return Statement): Dönüş ifadesi, fonksiyonun sonucunu belirtir. Fonksiyonun bir değer döndürmesi gerekiyorsa return anahtar kelimesi kullanılır ve bir veya daha fazla değer döndürülebilir. Dönüş ifadesi opsiyonel bir bileşendir ve herhangi bir değer döndürmek istenmiyorsa atlanabilir.

Örnek:

def toplama(a, b):

# Gövde (body)

sonuc = a + b

return sonuc # Dönüş ifadesi

2.7.3. Ön Tanımlı Argümanlar (Default Parameters)

Ön tanımlı argümanlar (default parameters), Python fonksiyonlarında belirli bir parametreye bir varsayılan değer atamak için kullanılan bir özelliktir. Bu, bir fonksiyonun belirli bir parametreye argüman sağlanmadığında veya argümanın None olarak geçildiğinde kullanılacak değeri belirlemek için kullanılır. Ön tanımlı argümanlar, fonksiyonların daha esnek ve kullanıcı dostu olmasını sağlar.

def fonksiyon(parametre1=deger1, parametre2=deger2, …):

# Fonksiyonun gövdesi

Burada:

  • parametre1, parametre2, vb. : Fonksiyonun parametre adlarıdır.
  • deger1, deger2, vb. : Bu parametrelere atanan varsayılan değerlerdir. Eğer bir argüman sağlanmazsa veya None olarak geçilirse, bu varsayılan değerler kullanılır.

Örnek olarak, bir fonksiyonun varsayılan bir mesajı döndüren bir parametresi olabilir:

def selam_ver(isim=”Dost”):

return f”Merhaba, {isim}!”

Bu fonksiyon, isim adlı bir parametreye sahiptir ve bu parametreye bir değer sağlanmadığında “Dost” adını kullanır:

print(selam_ver()) # “Merhaba, Dost!”

print(selam_ver(“Büşra”)) # “Merhaba, Büşra!”

Yukarıdaki örnekte, isim parametresi varsayılan olarak “Dost” olarak ayarlandı, ancak fonksiyon çağrılırken farklı bir değer sağlanabilir.

Ön tanımlı argümanlar, fonksiyonların daha genel kullanımını sağlar ve kullanıcıların her zaman tüm parametreleri doldurmak zorunda olmadığı durumlarda özellikle yararlıdır.

2.7.4.Return Nedir?

En basit anlatım ile return, bir fonksiyonun çıktısını daha sonra girdi olarak kullanmaktır.Daha geniş anlamda ise, Python’da bir fonksiyonun çalışması tamamlandığında bir değer döndürmek veya çıktı üretmek için kullanılan bir ifadedir. Return ifadesi, bir fonksiyonun sonucunu belirtmek için kullanılır ve bu sonuç daha sonra fonksiyonun çağrıldığı yerde kullanılabilir.

Return ifadesinin amacı, bir fonksiyonun işlem sonuçlarını dış dünyaya iletmek veya başka bir deyişle bir işlevin sonucunu döndürmektir.

KULLANILDIĞI DURUMLAR:

  1. Bir Değer Döndürmek: Bir fonksiyon genellikle belirli bir işlem sonucunu veya hesaplamanın sonucunu bir değer olarak döndürmek için kullanılır. Bu, fonksiyonun bir sonuç üretmesi gerektiği durumlarda yaygın olarak kullanılır.

def toplama(a, b):

sonuc = a + b

return sonuc

2.Birden Çok Değer Döndürmek: Return, birden fazla değeri bir demet (tuple) veya liste gibi bir veri yapısı içinde döndürmek için kullanılabilir. Bu, bir işlevin birden fazla sonuç ürettiği durumlarda kullanışlı olabilir.

def min_max(liste):

minimum = min(liste)

maksimum = max(liste)

return minimum, maksimum

3.Fonksiyonu Erken Sonlandırmak: Bir koşul sağlandığında veya belirli bir şart karşılandığında fonksiyonun çalışmasını sonlandırmak için return kullanılabilir. Bu, fonksiyonun işleyişi üzerinde kontrol sağlar.

def bolen_sifir_kontrolu(a, b):

if b == 0:

return “Bölen sıfır olamaz”

else:

return a / b

2.8. Koşullar (If-Elif-Else )

Python’daki koşullar, belirli bir şartın doğru (True) veya yanlış (False) olup olmadığını kontrol etmek için kullanılır. Koşullar, programın akışını kontrol etmeye ve belirli blokları çalıştırmaya yardımcı olur.

2.8.1. If Koşulu: If ifadesi, belirli bir koşulun doğru olup olmadığını kontrol eder ve belirtilen bloğu çalıştırır. Şu şekilde kullanılır:

x = 10
if x > 5: #Bir koşul girilir ve koşul sağlanırsa altındaki kod bloğu çalışır.
print(“x, 5'ten büyük.”)

2.8.2.Elif Koşulu: Elif ifadesi, bir önceki if ifadesi yanlışsa (bu koşul sağlanmamışsa) , başka bir koşulu kontrol eder. Birden fazla elif bloğu arka arkaya istenilen koşul çeşidi kadar eklenebilir.

if koşul1:
# Koşul1 doğruysa buradaki kod bloğu çalıştırılır
elif koşul2:
# Koşul1 yanlış, ancak koşul2 doğruysa buradaki kod bloğu çalıştırılır

Örnek: Aşağıdaki örnekte saat 14 tanımlanmıştır bu nedenle ilk koşul olarak if bloğuna gidilecek ve “saat<12 “ koşulu sağlanmadığı için bir alttaki elif kod bloğuna gidecek, ilk elif kod bloğunda “saat<18” koşulu sağlandığı için bu kod bloğu ekrana “İyi günler!” yazdırma işlemini yapmış olacaktır.

saat = 14
if saat < 12:
print(“Günaydın!”)
elif saat < 18:
print(“İyi günler!”)

2.8.3.Else Koşulu: Else ifadesi, önceki if veya elif ifadeleri yanlışsa çalıştırılır. Yani, hiçbir önceki koşul doğru değilse else bloğu çalışır. Şu şekilde kullanılır:

if koşul:
# Koşul doğruysa buradaki kod bloğu çalıştırılır
else:
# Koşul yanlışsa buradaki kod bloğu çalıştırılır

Örnek:

y = 3
if y % 2 == 0: #ilk koşul
print(“y, bir çift sayıdır.”)
else: #koşul sağlanmazsa yaptırılmak istenilen işlem içim “else” bloğu
print(“y, bir tek sayıdır.”)

2.9.Döngüler(Loops)

Döngüler (loops), belirli bir işlemi tekrar etmek için kullanılan kontrol yapılarıdır. Belirli bir koşul sağlandığı sürece belirli bir kod bloğunu tekrarlamak için kullanılır. Python’da iki temel döngü türü bulunmaktadır: for ve while döngüsü.

2.9.1.For Döngüsü

For döngüsü, bir program içinde belirli bir koşulu sağladığı sürece bir dizi işlemi tekrarlayan bir döngü yapısıdır. Genellikle bir belirli bir aralıktaki veya bir koleksiyonun (liste, dize, vb.) elemanları üzerinde işlem yapmak için kullanılır. “For” döngüsü, “while” döngüsünden farklı bir yapıya sahiptir ve belirli bir dizi elemanı üzerinde dolaşmak için daha uygun bir seçenek sunar

Şeması:

for eleman in dizi:

# Her bir eleman için yapılacak işlemler

Örnek:

renkler = [“kırmızı”, “yeşil”, “mavi”, “sarı”]

for renk in renkler:

print(“Renk:”, renk)

  • Üzerinde iterasyon yapılabilen nesneler üzerinde gezinmeyi ve bu gezinmeler sonucunda yakalamış olacağımız her bir eleman üzerinde çeşitli işlemler yapmayı bize döngüler sağlar.
  • Örneğin; Bir listenin elemanlarına erişmek ve ekrana yazdırmak istediğimizde for döngüsünü kullanırız.

2.9.2. While Döngüsü

While döngüsü, bir program içinde belirli bir koşul sağlandığı sürece bir dizi işlemi tekrarlayan bir kontrol yapısıdır. Genellikle döngü içindeki işlemler belirli bir şart sağlandığı sürece çalışır ve bu şart sağlanmadığında döngü sona erer. Bu, programlarda tekrarlayıcı işlemleri otomatikleştirmek için kullanılır.

while koşul:

# Koşul doğru olduğu sürece çalışacak kodlar

# Bu kodlar döngü içinde tekrarlanır

Örnek:

sayi = 1
while sayi <= 5:
print(sayi)
sayi += 1 # sayıyı her seferinde 1 artırıyoruz ki bir sonraki sayıya geçip işlem yapsın bunu yapmazsak sayımız hep 1 kalır ve 1 hep 5 den(koşulumuz) küçük olacağı için bu döngü sonsuz döngüye girer ve durdurulması gerekir.

  • Döngüler programlarda tekrarlayıcı işlemler yapmak için çok kullanışlıdır. Ancak dikkatli olunmalıdır çünkü koşulun bir noktada sağlanmaması veya sonsuz bir döngüye girmesi gibi hatalara neden olabilirler. Bu nedenle, döngüyü kullanırken koşulu uygun bir şekilde ayarlamak önemlidir.
  • Eğer jupyter notebook kullanılırken yanlışlıkla sonsuz döngüye girilirse sol tarafta “*” işareti gözükür bunu durdurmak için Kernelin altında bulunan durdurma tuşu simgesine(Interrupt the Kernel) basılmalıdır.

2.9.3. Break ve Continue

“Break” ve “Continue”, programlamada döngülerin kontrolünü sağlayan iki anahtar kelimedir. Bu iki ifade, döngülerin nasıl çalıştığını ve belirli durumlarda nasıl davranacaklarını yönlendirmek için kullanılır.

1.Break :
“break” ifadesi, bir döngüyü tamamen sonlandırmak için kullanılır. Bir koşul sağlandığında, döngü anında sona erer ve döngünün dışındaki kodlar çalışmaya devam eder. Özellikle bir “while” veya “for” döngüsünün içinde, belirli bir koşul karşılandığında döngüyü bitirmek istediğinizde kullanışlıdır.

Örnek: Aşağıdaki kod, i’nin 5 olduğu anda döngünün tamamen sona ereceğini ve 1'den 4'e kadar olan sayıları yazdıracaktır.

for i in range(1, 11):

if i == 5:

break

print(i)

2. Continue :

“continue” ifadesi, döngünün belirli bir noktada çalışmasını durdurur ve bir sonraki döngü adımına atlar. Yani, döngünün geri kalan kısmını atlar ve bir sonraki döngü tekrarından başlar. Bu, belirli bir koşulu sağlayan öğeleri geçmek veya işlem yapmamak için kullanışlıdır.

Örnek:Aşağıdaki kod, sadece tek sayıları yazdırır. Çift sayılar “continue” ifadesi ile atlanır ve döngü bir sonraki sayıya geçer.

for i in range(1, 11):

if i % 2 == 0:

continue

print(i)

NOT: “break” ve “continue” ifadeleri, döngülerin içinde belirli koşullara yanıt vermek ve işlemleri yönlendirmek için güçlü araçlardır. Bu ifadeleri kullanırken, programınızın mantığını doğru bir şekilde tasarlamak önemlidir, çünkü yanlış kullanıldığında beklenmeyen sonuçlara yol açabilirler.

2.9.4.Enumerate

Bir dizi veya başka bir veri yapısı üzerinde döngü oluştururken, her bir öğenin indeksini ve değerini almanızı sağlayan bir Python fonksiyonudur. Bu, özellikle bir listedeki veya başka bir koleksiyondaki öğelere hem değerleri hem de indeksleriyle erişmeniz gereken durumlarda kullanışlıdır.

“enumerate” fonksiyonu, genellikle “for” döngüsü ile birlikte kullanılır ve her döngü adımında indeksi ve değeri birlikte sağlar.

Örnek:

liste = [“elma”, “armut”, “kiraz”, “muz”]

for indeks, deger in enumerate(liste):

print(“İndeks:”, indeks, “Değer:”, deger)

Bu kod, “liste” adlı bir liste üzerinde döngü oluşturur ve her bir öğenin indeksini ve değerini ekrana yazdırır. Çıktı şu şekilde olur:

İndeks: 0 Değer: elma

İndeks: 1 Değer: armut

İndeks: 2 Değer: kiraz

İndeks: 3 Değer: muz

“enumerate” fonksiyonu, özellikle bir dizi üzerinde işlem yaparken her bir öğenin indeksini takip etmek istediğinizde çok kullanışlıdır. Bu sayede indeks bilgisini ayrı bir değişken oluşturmadan kolayca elde edebilirsiniz.

2.9.5. Zip()

Python’daki zip() fonksiyonu, bir veya daha fazla iterable (örneğin, liste, demet veya dize) üzerinde döngü oluştururken bu iterable’ları eşleştirerek birleştirmenizi sağlar. Bu, birden çok iterable’ı paralel olarak işlemek veya aynı indeksteki elemanları bir araya getirmek için kullanışlıdır.

zip() fonksiyonunun kullanımı şu şekildedir:

zip(iterable1, iterable2, …)

isimler = [“Ali”, “Ayşe”, “Mehmet”]

yaslar = [25, 30, 35]

for isim, yas in zip(isimler, yaslar):

print(isim, yas)

Bu kod, “isimler” ve “yaslar” listelerini bir araya getirir ve her iki liste üzerinde paralel olarak döner. Çıktı şu şekilde olur:

Ali 25

Ayşe 30

Mehmet 35

Eğer verilen iterable’lar farklı uzunluklara sahipse, zip() fonksiyonu en kısa iterable’ın sonuna geldiğinde döngüyü sonlandırır ve diğer iterable’larının geri kalan elemanlarını göz ardı eder.

Örnek:

isimler = [“Ali”, “Ayşe”, “Mehmet”]

yaslar = [25, 30]

for isim, yas in zip(isimler, yaslar):

print(isim, yas)

Bu kod, “isimler” listesinin sonuna geldiğinde döngüyü sonlandırır ve “yaslar” listesinin ikinci elemanını görmezden gelir. Çıktı şu şekildedir:

Ali 25

Ayşe 30

zip() fonksiyonu, iterable’ları eşleştirmenin yanı sıra, farklı veri yapıları üzerinde işlem yaparken kullanışlıdır ve verileri birbirine bağlamak veya işlemek için kullanılabilir.

2.10.Comprehensions

2.10.1.List Comprehensions

List comprehension, daha kısa ve okunabilir bir şekilde yeni bir liste oluşturmanızı veya mevcut bir listenin elemanlarını dönüştürmenizi sağlar. Genellikle “for” döngüsü ve “if” koşulu gibi yapıları kullanarak listeleri oluşturmak için kullanılır.

List Comprehensions Yapısı:

[ifade for eleman in iterable]

Bu yapıda:

ifade, her bir eleman üzerinde yapılacak işlemi veya dönüşümü ifade eder.

eleman, veri yapısındaki her elemanı temsil eder.

iterable, üzerinde döngü yapılacak olan veri yapısını (liste, dize, demet, vb.) temsil eder.

  • List comprehension yapısı, kodunuzu daha sade ve okunabilir hale getirir ve sık kullanılan bir yapıdır. Ancak çok karmaşık hale gelirse, okunabilirliği azaltabilir, bu nedenle dikkatli kullanmak önemlidir.

Not: Eğer Sadece if bloğu kullanılıyorsa if bloğu For’un sağına yazılır ama eğer if ve else birlikte kullanılacaksa if ve else blokları For’un soluna yazılır.

in operatörü ile list comprehensions kullanımı
not in operatörü ile list comprehensions kullanımı

2.10.2.Dict Comprehensions

Dict comprehension, liste comprehension’a benzer bir sözdizimine sahiptir, ancak sonuç bir sözlük olur. Bu yapı, sözlüklerin oluşturulması veya dönüştürülmesi gerektiğinde kullanışlıdır ve kodunuzu daha okunabilir hale getirebilir.

Dict comprehension yapısı şu şekildedir:

{anahtar: değer for eleman in iterable}

Bu yapıda:

  • anahtar, her bir eleman için belirtilen anahtarın değerini ifade eder.
  • değer, her bir eleman için belirtilen değerin değerini ifade eder.
  • eleman, veri yapısındaki her elemanı temsil eder.
  • iterable, üzerinde döngü yapılacak olan veri yapısını (liste, dize, demet, vb.) temsil eder.

Dict Comprehensions bize ister keys istersek values üzerinde ayrı ayrı işlem yapma kolaylığı sağlar.

Dict Comprehensions

Yukarıda örnek verilen kodda;

K : keys,

V: Values,

Dictionary.items = k+v ‘i temsil etmektedir.

İlk kod satırı keysleri tek tek alır ve bunları value **2 değerine eşitler.

ikinci kod satırı sözlüğün içerisinde yer alan value’lara ait keyslerin harflerini büyütür.

Üçüncü kod satırı sözlüğün içerisinde yer alan value’ları 2 ile çarparak bu value’lara ait keyslerin harflerini büyütür.

Not: String ifadelerde “ *2 “ işlemini yaptırmak, o string ifadesinin iki defa tekrarlanması anlamına gelir.

--

--