Python Değişkenler - Mustafa Sabri OĞUZ

Duyurular

2 Haziran 2019 Pazar

Python Değişkenler

Değişkenler, programlama dillerinde verilerin tutulduğu tanımlayıcılar dır. Her programlama da olduğu gibi veri değerlerimizi tutacak minik hafıza birimlerimiz bulunmaktadır. Tabi ki bu hafıza birimleri hafıza kartı olan Ram (Random Access Memory) donanımında tutulur. Bu nedenle geliştirdiğiniz kodların ne kadar iş hacmi varsa, ram miktarının doğrusal oranda önemi vardır.

Bu konuyu bir örnek ile açıklamaya çalışacağım. Yazılımları insanlara benzetelim, sonuçta bunları insan olarak bizler üretiyoruz. Üreteceğimiz programlar (yazılımlar) teknolojik olarak insandan üstün görünseler de, aslında tek farkı; yaptıkları işi hatasız ve bizden hızlı gerçekleştirebilmeleri...Bunun dışında her çocuk gibi bilgisiz ve öğrenmeye ihtiyacı vardır.

Kodlarımızda kullanacağımız veri değerlerini, bilgisayar hafızasında tutmak için değişkenler tanımlamamız gerekiyor.

Değişken Tanımlama

Python'da değişken tanımlamak aslında çok kolay bir işlemdir. Mesela geleneksel programlama dillerinde kullanacağımız değişkenin veri tipini önceden belirtmemiz gerekirken, bu işlem Python'da gerekmez. Çünkü değişkende kullandığınız verinin türünü Python kendi algılar. Tabi ki her şey bu kadar kolay değil, yine de uyulması gereken bazı kuralları bulunmaktadır.
Bunlar;
  • Programlamaya özgü anahtar kelimeleri kullanamazsınız. (while, for, and,vs...) 
  • Değişken adları sayı ile başlayamaz. (2elma, 5armut, 10kisilik, vs...)
  • Değişken isimleri özel karakter içermez. (*, -, +, $, vs...) 
  • Değişkenler birden fazla kelimeden oluşuyorsa, kelimeler birleşik yazılmalıdır. Aralarında boşluk karakteri kullanılamaz. (kelimeleri ayırmak için "_" altçizgi özel karakterini kullanabilirsiniz.) 
  • Python dili büyük-küçük harfe yazımında duyarlıdır. (degisken ile Degisken tanımları farklı değişkenlerdir.)
  • Değişken isimlendirmede Türkçe karakter kullanımı önerilmez!
Değişkenleri adlandırırken, verinin kullanım amacına göre isimlerdir meniz tavsiye edilir. Böylece kodunuz büyüyüp, karmaşıklaştığı zaman, değişkeni hatırlamanız veya tanımanız kolay olur. 
# Örnek Değişken Tanımı
Sayi = 1234
Şimdilik aklıma gelenler bunlar, bu kuralları ezberlemeniz gerekmez. Zamanla bu kuralları öğreneceksiniz. 

Değişkene Değer Atamak

Değişkenlere uygun isim tanımlaması yaptığımızı varsayalım. Peki kullanmayı planladığımız veriyi nasıl hafızaya kayıt edebiliriz?
Bunun için tüm programlama dillerinde bulunan "=" eşittir işareti olan atama operatörünü kullanıyoruz.
Değişken_adi = değer
Yukarıda ki ifadeye benzer bir kullanım gerçekleştirdiğimiz de ilgili veri, değişken aracılığı ile hafızaya kaydedilmiş olur.
Not: Daha önce de belirtiğim gibi değişken tanımlarken, kullanacağımız veri tipini önceden belirtmemize gerek yoktur. Ayrıca kullanabileceğimiz veri tipleri hakkında gerekli bilgiyi, ilerleyen yazılarımda bulabilirsiniz.

Değişken Değerinin Kullanımı

Değişkenlere atadığımız veriyi görüntülemek veya kullanmak için yapmamız gereken tek şey kodumuzun içerisinde değişken ismini çağırmak yada yazmaktır. Bunu bir örnekle açıklamaya çalışayım.
Hafızaya bir tam sayı verisi depolamak için oluşturacağımız değişkene bir tam sayı değeri tanımlıyoruz.
i = 7
Ardından değişken vasıtayla hafızaya aldığımız tam sayı verisini görüntülemek için print() fonksiyonu içerisinde "i" değişken ismini yazıyoruz.
print(i)
Artık kodumuzu çalıştırdığımız da çıktı olarak "7" tam sayısı bizi karşılayacaktır.
Çıktı: 7

Değişken Değerinin Değiştirilmesi (Güncellenmesi)

Yazdığımız koda göre değişkenlerin değerlerini değiştirmemiz veya zamanla güncellememiz gerekebilir. Bu durumda değişkenin değerini yeniden tanımlarız. Bunu yapmak için tanımladığımız değişken ismini yeniden yazar ve ardından (=) atama operatörü ile yeni değerimizi yazarız.
sayi = 5
print("İlk Sayı:", sayi)
sayi = 10
print("İkinci Sayı:", sayi)
sayi = 15
print("Üçüncü Sayı:", sayi)
Görüldüğü üzere bir değişkene değer ataması yaptıktan sonra print() fonksiyonu ile değişkenin değerini ekrana bastırıyoruz. Ardından yeni bir değişken tanımlamadan, var olan değişkene yeni bir tam sayı değeri yazıp, işlemi tekrarlıyorum.
İlk Sayı: 5
İkinci Sayı: 10
Üçüncü Sayı: 15
Sonuç, üstte ki çıktıdan da anlaşılacağı üzere her print() fonksiyonunda, değişken ismi aynı olmasına rağmen her seferinde değişken değerinin güncellenmiş hali gelmektedir.

Değişkenlerin Farklı Kullanımları

Zorunda olmasanız da ileride kullanma ihtiyacı duyabileceğiniz veya diğer geliştiricilerin kodlarında rastlaya bileceğinizi düşündüğüm farklı değişken kullanımlarını göstermek istedim. Bunlar;

Birden Fazla Değişkene Aynı Değeri Atama

Tüm işlemleri tek bir değişken üzerinden gerçekleştirmek zorunda değilsiniz. Birden fazla değişken ismi tanımlayıp, aynı değeri atamak isteyebilirsiniz.
Degisken1 = Degisken2 = Degisken3 = Deger
Python bu ifadeyi gördüğü zaman sağ baştan başlayarak, en sağda bulunan değeri ilk değişkene atar. Daha sonra sola doğru olan değişkenler birbirini takip edecektir. Böylece hepsinin değeri aynı olacaktır.

Tek Satırda Değişkenler ve Değerler Tanımlama

Eğer birden fazla değişken ve veri tanımınız varsa ve bunları tek satırda yazmak istiyorsanız, Python'da bunu yapmanız oldukça basittir.
Degisken1, Degisken2, Degisken3 = Deger1, Deger2, Deger3
Bu şekilde yazarak, değişken sırasına göre değerleriniz, değişkenlere atanmış olacaktır. Bu şekilde değer ve değişkenleri tek satırda toplayabilirsiniz.

Global ve Local Değişkenler

Değişkenlerin tanımlandığı yere göre kullanımları veya geçerliliği vardır. Bunlar; Global ve Local olarak ikiye ayrılır. 

Global Değişken Tanımı ve Kullanımı

Programınızın ana kod akışında oluşturulan değişkenlere global değişkenler denir. Bu değişkenler alt kod akışı olan kod bloklarında (if, while, for, vs...) erişe bilinir ve üzerinde işlem yapabilirsiniz.
degisken = "Deneme"

def fonksiyon():
print(degisken)

fonksiyon()

Local Değişken Tanımı ve Kullanımı

Alt kod akışında oluşturulan değişkenler, kendi ve kendi altında bulunan alt kod bloklarında erişe bilinen değişkenlere local değişkenler denir. Bu değişkenler ana kod akışında (global düzeyde) tanımlı olmayacağı için erişilemez ve üzerinde işlem yapamazsınız. Doğru kullanımı hakkında bir örnek verecek olursak;
globalDegisken = "Global Değişken"

def fonksiyon():
localdegisken = "Lokal Değişken"
print(localdegisken)

print(globalDegisken)
fonksiyon()
Şimdi hatalı kullanımını görelim;
globalDegisken = "Global Değişken"

def fonksiyon():
localdegisken = "Lokal Değişken"
print(localdegisken)

print(localdegisken) # Hata: Ana kod akışında tanımlı değil.
fonksiyon()
Bu şekilde kodumuzu değiştirip derleme yaparsak, doğal olarak şu hata karşımıza gelecektir: "NameError: name 'localdegisken' is not defined". Çünkü erişmeye çalıştığımız değişken bir alt kod akışı olan fonksiyonun kod bloğu içinde tanımlıdır. Global düzeyde değişken tanımsızdır.

Bunu ebeveyn ve çocuk ilişkisi üzerinden örneklendirmeye çalışırsak belki anlayabilirsiniz. Diyelim ki çocuk, alt kod akışı (Kod Bloğu) olsun. Baba ise Ana kod akışı (Global Düzey) olsun. Bu durumda çocuk, babasının tüm bilgisini öğrenebilir ve öğrendiklerini yapabilir. Lakin ilgisiz baba, çocuğun öğrendiği, ürettiği bilgilerden habersizdir. Doğal olarak babaya çocuğunun bildiği bir soru sorulursa, baba cevap veremeyecektir. Cevap verebilmesi için babanın gidip, çocuğuna bunu sorması gerekir.

Bu konuyu olabildiğince açıklayıcı bir şekilde yazmaya çalıştım. Umarım işinize yarar. Eğer anlamadığınız veya eksik gördüğünüz yerleri varsa, yorum olarak bana dönüş yapabilirsiniz. Böylece yazımı güncellemekte yardımcı olmuş, olursunuz.

Hiç yorum yok:

Yorum Gönder