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!
# Örnek Değişken TanımıŞimdilik aklıma gelenler bunlar, bu kuralları ezberlemeniz gerekmez. Zamanla bu kuralları öğreneceksiniz.
Sayi = 1234
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ğerYukarı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 = 7Ardı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 = 5Gö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.
print("İlk Sayı:", sayi)
sayi = 10
print("İkinci Sayı:", sayi)
sayi = 15
print("Üçüncü Sayı:", sayi)
İlk Sayı: 5Sonuç, ü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.
İkinci Sayı: 10
Üçüncü Sayı: 15
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 = DegerPython 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, Deger3Bu ş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"Şimdi hatalı kullanımını görelim;
def fonksiyon():
localdegisken = "Lokal Değişken"
print(localdegisken)
print(globalDegisken)
fonksiyon()
globalDegisken = "Global Değişken"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.
def fonksiyon():
localdegisken = "Lokal Değişken"
print(localdegisken)
print(localdegisken) # Hata: Ana kod akışında tanımlı değil.
fonksiyon()
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