HOŞGELDİNİZ! BUGÜN 16 EYLÜL 2021, PERŞEMBE

Değişken kavramı

21.01.2021 00:00:00
'Değişken kavramı' seslendirme dosyası:

Merhabalar

Son dersimizde print komutunun aralık bırakma (sep) ve sonlandırma (end) parametreleriyle, 4 işleme ait simgeleri gördük. Toplamayı + ile, çıkartmayı - ile, çarpmayı * ile, bölmeyi / ile, küsüratsız bölmeyi // ile, kalan bulmayı % ile, üs almayı ** ile yaptık. Son olarak da Python'da istediğimiz bir metni çarpma işlemiyle çoğaltabileceğimizi gördük.

Peki, yaptığımız işlemlerin sonuçlarına isim vermeye ne dersiniz? Kod yazarken, gerek işleme giren sayılara, gerek işlem sonuçlarına isim vermek bizi aynı sayıları tekrar tekrar yazmaktan artı hatalı işlem yapmaktan korur. Ayrıca tekrar edeceğimiz işlemleri bir formül haline getirebilmemizi sağlar. Bilgisayarın bu temel nüktesini minik bir örnekle anlatalım.

Diyelim ki boyumuz 1.65 m, kilomuz da 75 kg olsun. Bunları Pythona "boy" ve "kilo" diye isimlendirerek aşağıdaki gibi tanıtabiliriz:

  boy = 1.65
  kilo = 75

Tebrikler ilk atama işlemini yaptınız. Burada en önemli simge aradaki "=" eşittir simgesi. Eşittirle Python'a aynen şunu söylüyoruz:

"Abi 1.65 sayısını al, hafızanda "boy" isminde bir yer aç ve oraya koy, ben bir daha sana "boy" deyince bana o sayıyı ver. Bir de aynı şekilde "kilo" değişkeni oluştur, o da 75 sayısını tutsun sürekli". Bu andan itibaren, mesela print( boy ) yazdığımda Python bana anında 1.65 sayısını verecektir.

Şimdi hazır kilo lafı ettik, gelin zayıf mıyız, şişman mı onu hesaplayalım. Burada, ağırlığınızı boyunuzun karesine böldüğünüzde (kg/m²) çıkan vücut kitle indeksi denen bir kavramı kullanıyoruz. Bu sayı 18.5 ile 25 arasındaysa normal kilonuzdasınız, 30 a kadarsa kilo fazlanız var, daha yukarısı obez, 18.5 'un altında ise zayıfsınız demektir. Bu hesabı Python'da şu şekilde kodluyoruz :

  kindeks = boy / kilo ** 2

Ne diyor burası: "Abi, hafızanda "boy" isimli yerdeki sayıyı al, bunun karesini bul, sonra da "kilo" isimli yerdeki sayıyı buna böl. Sonucu da hafızanda "kindex" isimli yeni bir yer aç ve oraya koy". Aradaki "isimli yerdeki" laflarını kullanmazsanız biraz daha programcı oldunuz, değişkenleri doğal olarak kullanıyorsunuz demektir. Mantık şu, kullandığımız her isim bilgilerimizi sakladığımız bir kutu. İster eşittirle bu kutuya yeni bir değer koyuyorsunuz, isterseniz de sadece kutunun ismini anarak içinde o anda ne varsa elinize almış oluyorsunuz.

Geriye kalıyor hesaplanıp hafızaya konan bu "kindex" i bizim de görmemiz, neydi o komut… print(kindex). O zaman toparlayalım, ilk mini programımız işte karşınızda:

  boy = 1.65
  kilo = 75
  kindex = kilo / boy ** 2
  print( kindex )

Bu kodu size verdiğim online sitelerde yazıp çalıştırdığınızda ekranda 27.5482 (ve devam eden) sayısını göreceksiniz. 25'i aştığı için biraz kilolu bir indeks.

Şimdi gelelim bu hesabı böyle isimlerle filan yapmanın faydasına. Diyelim ki başka birisi için aynı indeksi hesaplayacaksınız. Boyu 1.65 değil de 1.75, kilosu da 75 değil de 72 kg. O zaman, aynı kodda sadece ilgili sayıları değiştirmeniz ve kodu yeniden çalıştırmanız yeterli olacaktır :

  boy = 1.75  # yeni kilolarla burayı ve
  kilo = 72   # burayı değiştirdik
  kindex = kilo / boy ** 2
  print( kindex )

Bu sefer alacağınız sonuç 23.5102 (ve küsuratı devam eden) sayısı olacaktır. Bu şahsın kütle indeksi normal aralıkta. Dikkatli olanlar fark etmiştir, boy ve kilo satırlarının sağ tarafında kendimize göre yazılar yazdık. Bunlar hataya sebep olmaz mı acaba… Hayır, bilakis, programcılar bu şekilde bilgisayar kodlarının arasına, kendi notlarını alarak ileride aynı koda baktıklarında kendilerini yönlendirmeyi-hatırlatma yapmayı çok severler. Python'un bir satırda, diyez "#" işaretinden sonraki hiç bir yazıyı kaale almadığını unutmuyoruz.

Değişkenler sayesinde, örneğimizde olduğu gibi, boy, kilo, indeks, yahut konunuz neyse onunla ilgili yapacağınız her türlü hesapta, programcılığın sınırsız diyebileceğimiz sahasında aklınıza gelebilecek her türlü nicelik ve niteliği bilgisayarda depolarız ve gerektiğinde değiştiririz.

Şimdi dikkatinizi değişkenlerin isimlerine değil de türlerine yoğunlaştırmanızı istiyorum. Mesela 85 bir tamsayı. Ama 1.75 bir ondalıklı sayı. Önceki derste tırnak işaretlerinin arasında kullandığımız yazı (yahut metin) türünü de hatırlayın. Şu ana kadar 3 farklı türde veriyle uğraştık. Şimdi bunların Python dünyasındaki isimleriyle tanışalım:

  1.75  # float
  85    # int
  "Ali" # str

Evet, artık bunlardan sorumlusunuz. Size bir küsüratlı sayı lazım olduğunda türünün float olduğunu, tamsayılarla işlem yaptığınızda int kullandığınızı, metin türündeki her veriyi tırnak içinde yazmanız gerektiğini ve türünün str olduğunu unutmuyorsunuz. Bu hem kodumuzda değişkenleri tanımlarken, hem de kullanırken gerekecek çok temel bir bilgi.

Bir sonraki derste buluşmak üzere hoşçakalın. Python kodlarınızı deneyebileceğiniz online siteler :

Kaynakça
▪️ https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-1-python-basics

 
Nahit Taşpınar / diğer yazıları

Yeni Mesaj arşivinde 'tarihte bugün'

Yeni Mesaj Gazetesi arşivi 2001 yılına kadar eksiksiz içerikle erişime açık olup ayrıca tüm arşivde anahtar kelimelerle arama yapmak da mümkündür.

21.01.2020, 21.01.2019, 21.01.2018, 21.01.2017, 21.01.2016, 21.01.2015, 21.01.2014, 21.01.2013, 21.01.2012, 21.01.2011, 21.01.2010, 21.01.2009, 21.01.2008, 21.01.2007, 21.01.2006, 21.01.2005, 21.01.2004, 21.01.2003, 21.01.2002


logo

Beşyol Mah. 502. Sok. No: 6/1
Küçükçekmece / İstanbul

Telefon: (212) 425 10 66
Faks: (212) 424 69 77
E-posta: [email protected] [email protected]


WhatsApp haber: (0542) 289 52 85


Tüm hakları Yeni Mesaj adına saklıdır: ©1996-2021

Yazılı izin alınmaksızın site içeriğinin fiziki veya elektronik ortamda kopyalanması, çoğaltılması, dağıtılması veya yeniden yayınlanması aksi belirtilmediği sürece yasal yükümlülük altına sokabilir. Daha fazla bilgi almak için telefon veya eposta ile irtibata geçilebilir. Yeni Mesaj Gazetesi'nde yer alan köşe yazıları sebebi ile ortaya çıkabilecek herhangi bir hukuksal, ekonomik, etik sorumluluk ilgili köşe yazarına ait olup Yeni Mesaj Gazetesi herhangi bir yükümlülük kabul etmez.