Geçen yazıda Python kabuğunu kullandık ve basit cümleler ya da aritmetik işlemler yaptık. Ancak bir programın faydalı olabilmesi için bir veri alması, veriyi işlemesi ve sonucu vermesi gerekir. Programa gönderilen verilerin hafızada tutulması için değişkenleri kullanırız. Değişkenler, belirlenen veri tipine göre hafızada (RAM) yer ayırırlar. Dilediğimizde bu alanı değiştirebilir, çağırabilir ya da silebiliriz.

Veri Tipleri

Programlama dillerinin hemen hepsinde ortak bazı veri tipleri vardır. Örneğin, tam sayı veriler için int, metinsel veriler için string ya da tek karakterlik veriler için char olabilir.

Yorumlamalı dillerde değişken tiplerinin kullanımı biraz daha esnek olmakla birlikte C#, C++ gibi programlama dillerinde kullanmak istediğiniz veriye göre, değişken tipini nokta atışı yaparak belirlemelisiniz.

Aşağıda basit bir görsel hazırladım. Değişkenlerin çalışma mantığını basitçe anlatmak için sanırım uygun.

Temsili RAM yapısı
Temsili RAM yapısı

Değişkenler geçici veri tutuculardır. RAM üzerinde tutulduğu için işiniz bittikten sonra kaybolurlar. Yukarıda gördüğünüz üzere yeni bir değişken tanımlandığında RAM üzerinde bir alan ayrılır ve orada belirlediğiniz türde bir veri tutulur.

Bir çok programlama dilinde olduğu gibi, Python'da sayısal değerler (int, float) yazılırken tırnak işareti kullanılmaz. Ancak eğer bir metin girmek istiyorsanız tek veya çift tırnak kullanmalısınız.

Şimdi Python kabuğunu açın. Type fonksiyonu bize yazdığımız verinin türünü döndürür. Yukarıda gördüğünüz verilerin tipini tek tek öğrenin.

type("umut")
type(23)
type(1.3)

Eğer yukarıdaki komutları tek tek kabukta denediyseniz sırasıyla str (string), int ve float döndürdü. Yani bizim yazdığımız veriler sırasıyla metin, tam sayı ve ondalıklı sayı.

String değerlerin tırnaklar içinde yazılması gerektiğini söylemiştik. Eğer tırnak içinde yazmazsanız Python bunun daha önceden tanımlanmış bir değişken olduğunu düşünecek dolayısıyla bulamadığı için hata verecektir. Sayılar için tırnak koyma zorunluluğu yoktur çünkü değişken isimleri sayı ile başlayamaz.

Değişkenler

Python'da değişken oluştururken veri tipini belirtmeniz gerekmez. Bu kural PHP, Javascript ya da Ruby gibi diğer yorumlamalı dillerde de aynıdır. Ancak örneğin C# ile tanımladığınız bir değişkenin veri tipini değiştiremezken Python'da değişkenin barındırdığı veri tipi de çalışma esnasında değişebilir.

Şimdi, kabuk üzerinde değişken oluşturup ekrana yazdıralım. Python kabuğuna satır satır aşağıdaki komutları girin.

icecek = "Kahve"
print(icecek)

Gördüğünüz gibi print fonksiyonunu kullanırken tırnak koymadık. Çünkü ekrana "urunAdi" yazmak yerine değişkenin değerini yazmasını istedik.

Bir değişkene değer verirken eşittir işaretini kullanırız. Buna "atama ifadesi" ya da "atama işleci" denir. Eşittirin sağındaki değer, solundaki değişkene verilir. Başka bir örnek;

pi = 3.14
print(pi)

Pi değişkenine vermek istediğimiz değer ondalıklı sayı olduğu için tırnak kullanmadık. Şimdi bir değişkenin veri tipini akış esnasında değiştirelim.

x = 17
print(x)
type(x)

x = "Ben o eski x değilim."
print(x)
type(x)

Yukarıdaki komutları kabuğa girdiğinizde göreceksiniz ki önce int (tam sayı) olarak oluşturduğumuz x değişkenini daha sonra str (metin) olarak kullandık. Şimdi string ve int değerlerin farkını anlamak için bir örnek daha yapalım.

x = 15
print(x + 2)

x = "15"
print (x + 2)

Yukarıdaki komutları yazdığınızda, ilk bölümde ekrana x değişkenini iki artırarak 17 yazdı. İkinci bölümde x değişkeninin değeri hala aynıydı fakat tırnak kullandığımız için tipi string oldu. Değerini 2 artırarak yazmak isteyince şu hatayı verdi: "TypeError: cannot concatenate 'str' and 'int' objects"

Hata verdi çünkü int ve string tipleri belleğin farklı alanlarında tutulurlar ve bir metni sayı ile toplayamazsınız. Tırnak içindeki değerin sayı olması bir şeyi değiştirmez. Python için; "tırnak varsa o bir metindir" kuralı vardır.

Değer Atama

Değişkenlere eşittir (=) ile değer atıyorduk. Ancak buradaki eşittiri matematikteki eşittir ile karşılaştırmamak gerekir, programlama dillerinde eşittir, eşitliği göstermek için kullanılaz. Örnek olarak kabukta aşağıdaki işlemi deneyin.

x = 20
x = x + 5
print(x)

İlk satıra eyvallah, x = 20 dedik. İkinci satırda "x nasıl x + 20'ye eşit olabilir ki" diyebilirsiniz. Ancak şöyle çalışır; Önce eşittirin sağ tarafındaki işlem yapılır, ardından sol tarafa aktarılır. Yani aslında burada yaptığımız işlem x üzerine 5 ekleyip çıkan sonucu x'e vermek. Print fonksiyonu ile yazdırdığınızda 25 sonucunu göreceksiniz.

Başka bir örnek;

x = 12
y = 20
z = 5
x = x + y
z = z + y
print(x)
print(y)
prnt(z)

Sonuçları print ile yazdırdığınızda göreceksiniz ki x = 32, y = 20 ve z = 25 oldu.

Değişken Tanımlama Kuralları

Programcılar kullanacakları değişkenleri istedikleri gibi isimlendirebilirler. Ancak bir kaç küçük sınırlama vardır. Değişken ismi bir harfle, ya da alt çizgi (_) ile başlayabilir. Ancak bir sayı ile başlayamaz ve değişken adı içerisinde "? ! - 0 )" gibi özel karakter kullanılamaz.Örneğin aşağıdaki hatalı tanımlamalardan her hangi birini yaparsanız "SyntaxError: invalid syntax" hatası alırsınız.

nededin? = "sana ne"
1numara = "umut"
önemli! = "o kadar da değil..."
$ = "dolar"

Değişken isimleri aynı olamaz. Eğer bir değişken ile aynı isimde başka bir değişken tanımlarsanız Python'ın yapısı gereği önceki değer silinir. Ancak büyük küçük harf duyarlılığı vardır. Aşağıdaki gibi bir örnek yaparsanız farkı anlayabilirsiniz.

umut = "Merhaba!"
Umut = "Selam..."
uMut = "Konnichi wa!"
print(umut)
print(Umut)
print(uMut)

Şimdi aşağıdaki gibi bir değişken tanımlayalım.

elif = "Benim adım Elif. Seninki ne?"

Hata aldınız, çünkü elif bir anahtar kelime. Anahtar kelimeler programlama dilindeki özel anlamları olan işleçlerdir. Değişken isimleri anahtar kelimeler olamazlar.

Değişken ismi olarak kullanamayacağınız bazı anahtar kelimeler; True, False, None, class, continue, def, finally, for, from, is, lambda, nonlocal, return, try, while, and, as, assert, del, elif, else, global, if, import, not, or, pass, with, yield, break, except, in ve raise.

Kullandığınız Python sürümündeki anahtar kelimeleri görmek için kabukta aşağıdaki komutları yazabilirsiniz.

import keyword
keyword.kwlist

Değişken adı olarak kullanamayacağınız kelimeleri bir dizi olarak döndürecektir.

Devam et: Python: Operatörler