## 27. Değişkenler

Beşinci derste Reeborg'a Türkçe öğretmiştik. git = move komutunu vererek git'i move ile eşanlamlı hale getirmiştik. Bu eşitlikten sonra move yerine git kullanılabilmişti.

Eşanlamlılar sayılar için de kullanılabilirler.

    >>> n = 3
    >>> print n
    3
    >>> 2*n
    6
    >>> n*n
    9

Güzel, değil mi? Eşanlamlının değerini ihtiyaç duyduğumuzda değiştirebiliriz.

    >>> n = 3
    >>> print n
    3
    >>> n = 2
    >>> print n
    2

Eşanlamlının değerini değiştirebildiğimiz için ona değişken denir. Bir eşanlamlı yaratılırken, bir değişkene değer atanmış olur. "=" sembolü eşittir şeklinde değil, eşanlamlısıdır şeklinde okunmalıdır. Bunun nedeni, "eğer n 2'ye eşitse, 2'de n'e eşittir diyebiliriz", oysa bunu Python'da denediğinizde durumun farklı olduğunu göreceksiniz. Aşağıdaki kodu inceleyin.

    >>> n = 2    # bu geçerlidir
    >>> 2 = n
    SyntaxError: can't assign to literal

Eğer klavyede eşittir işareti yerine aşağıdaki gibi bir sembol olsaydı

    >>> n ← 3
    >>> print n
    3

Python'un yaratıcısı Guido van Rossum bu işareti eşittir işareti yerine kullanırdı. Bu aynı zamanda iki sayıyı karşılaştırırken neden "`==`" kullandığımızı da açıklıyor.

Kısaca yukarıda gördüğümüz gibi, bir sayı bir değişkene atandıktan sonra bu değişken aynen sayıyı kullandığımız şekilde kullanılabilir. Örneğin:

    >>> a = 1
    >>> b = 2
    >>> c = a + b
    >>> print c
    3

Buraya kadar gördüklerimiz kolay anlaşılır olmalı. Aşağıdaki kod ise başlangıçta biraz zor görünebilir:

    >>> a = 1
    >>> a = a + a   # Sürpriz?
    >>> print a
    2

"`=`" 'in eşanlamlısıdır şeklinde okunması gerektiğini hatırlayın. Bu nedenle sürpriz satır aşağıdaki gibi okunmalıdır:

- "=" işaretinin sağındakileri al [burada, `a + a`.]
- Bunun değerini hesapla. [2; 1 + 1'den dolayı].
- Soldaki değişken [`a`] hesaplanan değerin (2) eşanlamlısıdır.

Bu şekilde açıklayarak, sanki işi daha anlaşılmaz hale getirdim. Ama bu kullanıma da kısa zamanda alışacaksınız.

Bu yapı çok sık kullanıldığından dolayı, Python'da aynı işi aşağıda olduğu gibi de yapabilirsiniz:

    >>> a = 1
    >>> a += 3       # "a = a + 3"
    >>> print a
    4

    >>> a -= 2       # "a = a - 2"
    >>> print a
    2

    >>> a *= 5       # "a = a * 5"
    >>> print a
    10

    >>> a /= 2       # "a = a/2"
    >>> print a
    5

### Sıra sizde

10 tabanında iki sayıyı Reeborg'a toplatmanın ne kadar zor olduğunu hatırlayın. Hafızanızı tazelemek gerekirse, yapılacak iş aşağıda olduğu gibi Reeborg'a toplamaları yaptırmak.

3+2=5

8+4=12

İşinizi kolaylaştırmak için değişkenler kullanabilirsiniz, bu durumda daha önceden olduğu gibi özel bir dünyaya ve bip taşımaya ihtiyacınız olmayacak. Bir kaç tavsiye:

- toplam adında ve ilk değeri sıfıra eşitlenmiş bir değişken kullanın.
- Reeborg'a bipleri birer birer toplatın ve her defasında toplam'ın değerini bir arttırın, `toplam += 1 gibi.`
- Reeborg işini tamamladığında iki durumu düşünün: toplam 10'dan büyük mü, değil mi? Eğer büyükse bip toplamından 10'u çıkartın ve kalan sayıda bip'i bırakıp bir sola ilerleyin ve oraya da eldeki bir'i bırakın. Değilse, tüm bipleri bırakın.
- Önemli bir tavsiye: `turn_right()`'dan başka bir fonksiyon tanımlamayın, bunun nedenini ilerleyen derslerde göreceksiniz.

Python komutlarının yorumlanması - - Değişkenler ve Fonksiyonlar