1: Değişkenler

Değişken (variable) bir program içindeki verinin "depolandığı yer" görevi yapar. Bir bilgiye, daha sonra çağırabilmek için verdiğimiz isimdir. Her değişkenin adı vardır; örneğin myLuckyNumber bir değişken adı olabilir. Bir değişkene bir bilgiyi depolamak için, eşittir işareti ile bir komut satırı yazarız:

«değişken adı» = «depolamak istediğiniz değer»
(İfadelerin özel bölümlerini belirtmek için, derslerimizde yukarıdaki gibi "çift açılı ayraçlar" kullanıyoruz.) Örneğin, aşağıdaki Python satırı

benimŞanslıSayım = 13
13 değerini benimŞanslıSayım değişkeninde depolar. Böylece, benimŞanslıSayım değişken adını her yazdığınız yerde Python, bu değişkene başta atadığımız değeri kullanır. Aşağıda, değişkenleri kullanma ile ilgili kısa bir örnek verilmiştir. Birden fazla yönerge satırı vardır: Python, önce ilk satırı, ardından ikinci satırı çalıştırır ve son satıra gelene kadar bu şekilde devam eder. Çalıştır düğmesine basarak işlemi görebilirsiniz. 
Example
Bir örnek değişkenin kullanılışı.
Programdaki sırasıyla 5 satırı ve çıktıyla (output) nasıl karşılıklı olduğunu inceleyin. Gördüğünüz gibi, benimŞanslıSayım değişkeni ilk 2 print cümlesinde 13 değerini  korudu, sonra değeri  7 oldu. Ayrıca burada, toplama (+) operatörünü kullanarak 2 sayıyı topladık. Aynı şekilde çıkarma (-), çarpma(*) ve bölme (/) operatörleri de var ve bunlara ileride tekrar döneceğiz. Bir bilgisayarın bellek saklama alanını, kâğıt kalemle bir tablodaki değişkenleri, değerlerini ifade edecek şekilde kullanarak taklit edebilirsiniz. İşte bir örnek; unutmayın (*) Python'da çarpma işlemi yapmakta kullanılır.

Hedef: Programın sonunda tüm değişkenlerin son değerlerini belirleyin.

first = 2
second = 3
third = first * second
second = third - first
first = first + second + third
third = second * first
Fikir: Bir tablo üzerinde nasıl değiştiklerini takip edelim. İşlemlerin en sonunu görmek üzere çubuğu kaydırın.

ifade ifadelerin işlenmesinin ardından değerler
FIRST SECOND THIRD
first = 2 2
second = 3 2 3
third = first * second 2 3 6
second = third - first 2 3 4 6
first = first + second + third 2 12 4 6
third= second * first 12 4 6 48

Programın sonunda first değişkeninin değeri 12, second adlı değişkenin değeri 4 ve third adını verdiğimiz değişkenin değeri 48 oldu.

Böyle bir tablo çizerek değişkenlerin durumunu takip etmek yazdığınız kodu anlamak ve hata olduğunda onarmak için iyi bir yoldur. Bu gibi programlarda yapılan işlemlerin her adımını görmemize olanak sağlayan bir Python3 görüntüleme aracı kurduk (yukarıdaki menüden de ulaşabilirsiniz). Aynı programı görüntüleyicide çalıştırdığımızda böyle göreceğiz. İleri > düğmesine veya klavyenizde ok tuşuna basarak her seferinde bir adım ileri (veya geri) gidebilirsiniz. Her satır işleme konduğunda değişkenin nasıl değiştiğine dikkat edin.   Değişkenlerle ilgili kısa bir alıştırma.

Short Answer Exercise: x Gösterdiğim Yerde
Bu satırlar işleme konduktan sonra x'in değeri kaç olur?

x = 10
x = x + x
x = x - 5
Correct!

İki Yaygın Hata

Eğer daha önce tanımlamadığınız bir değişkeni çağırırsanız Python hata (error) verir.

Example: Tanımlanmamış Değişken
Gördüğünüz gibi hata verdi: NameError: name 'sorun' is not defined. Bazen bu gibi hataları küçük yazım yanlışları yüzünden de alırsınız: Mesela address=32, diye bir değişken tanımladınız, ve daha sonra print(adress), yazdığında aynı hatayı alırsınız. Başka bir hata da, bir = ifadesinde değişkenle değerin yerini değiştirmekten kaynaklanır.
Example: SyntaxError: can't assign to literal
İlk satırda sorun yok ama ikinci satır hataya yol açar: Python, ikinci satırdaki 4 = x ile 4'e yeni bir değer tanımlamaya çalıştığınızı düşünür, ama sadece değişkenlere değer tanımlayabilirsiniz ve  4 bir değişken değildir (rakamlar değişken olarak tanımlanamaz).  A = B ile B = A matematikte aynı şeydir, ama programlama yaparken bunlar aynı değildir ve hataya yol açar.

Alıştırma

Değişkenlere başlarken bir ısınma egzersizi yapalım.

Coding Exercise: Başlar, Omuzlar, Dizler ve Parmaklar
Bir kod fragmanı (bir Python programının kısa bir bölümü) yazarak bir partiye gelen insanların baş, omuz, diz ve parmak sayılarını hesaplayın. Düzenleyici otomatik olarak sizin için partideki insan sayısını içerecek people değişkenini tanımlayacak. Siz de programı yazmak için gereken 4 değişken ve bunların değerlerini tanımlayın, başlar için  heads, omuzlar için shoulders, dizler için knees, ayak parmakları için toes, değişkenlerini tanımlayın. Bu değişkenlere partideki kişi sayısına oranla değer atamalısınız. Programınızın çıktıyı (output) yazdırmasına gerek yok. Düzenleyici programı çalıştırdığınızda people  değişkeni için farklı bir değer atayacak.
Başlarken ipucuna ihtiyacınız olursa buraya tıklayın

Kod Sürükleme

Bu derste, şimdiki çalışma yeni bir programlama alıştırması olacak, programlama yapmayacağınız bir program. Size, doğru yazılmış bir program vereceğiz, ancak satırların sırası karıştırılmış olacak. Yapmanız gereken satırları sürükleyip doğru yere bırakarak satırların sırasını yeniden düzenlemek.

Scramble Exercise: Hız Hesaplayıcısı
Bir tepede yokuş aşağı, yokuş yukarı bir bisiklet yarışmasındasınız. Düzenleyici önceden şu değişkenleri tanımladı: uphillDistance yokuş yukarı mesafe ve  downhillDistance yokuş aşağı mesafe (km olarak) yarışın 2 bölümünü oluşturuyor. uphillTime yokuş yukarı zamanı ve  downhillTime yokuş aşağı zamanı (dakika olarak) da her bölümün kaç dakikada tamamlandığını gösteriyor.  Yazacağınız program tüm yarışta ortalama hızı (km/dakika) yazdırmalı (print).
Satırları düzenlemek için farenizle tutup sürükleyin.
Çıkış yolu bulamıyorsanız ipucu için tıklayın 
  • totalDistance = uphillDistance + downhillDistance
  • print(averageSpeed)
  • averageSpeed = totalDistance / totalTime
  • totalTime = uphillTime + downhillTime

Değişim Programı

Bu dersin son alıştırması.

Coding Exercise: Değişim Programı
Bir program yazarak iki değişkenin değerlerini değiş tokuş (swap) edin. Düzenleyici  x ve y değişkenlerini sayısal değerler atayarak tanımlayacak. Siz yazacağınız kodla değişkenlerin değerlerini değiş tokuş etmelisiniz: x sizin kodunuzu çalıştırdığımızda y 'nin ilk baştaki değerini taşımalı;  y de sizin kodunuz işlendikten sonra  x 'in düzenleyici tarafından belirlenmiş ilk değeri taşımalı. Programınızın çıktı (output) yazdırması (print) gerekmiyor.
En yaygın çözüm çok kısa, ama bulması zor. İpucunu okumak isterseniz buraya tıklayın. 
İpucu, bölüm 1
Sorunu çözmek için aritmetik yapmanıza gerek yok (+-*/) . Yapmanız gereken tek şey değişkenleri ve değişken tanımlama işaretini = kullanmak. İstediğiniz isimle yeni değişken tanımlayabilirsiniz.
İpucu, bölüm 2
İki amacımız var: y 'nin ilk değerini x'e; x'in ilk değerini  y değişkenine atamak. Eğer sadece ilk  şartı yerine getirmek isteseydik (diğer bir deyişle sadece y 'nin ilk değerini x'e atamak isteseydik), 1 satırlık bir program yapardık.

x = y
Pekiyi ama iki şartı birden nasıl yerine getirebiliriz?
İpucu, bölüm 3
Bu program umut vadediyor,

x = y
y = x
fakat bir problem var. Mesela düzenleyici  x için 10 ve y için 99 değerini tanımlasaydı, ve biz yukarıdaki 2 satırlık programı çalıştırdığımızda, ilk satırdan itibaren  x ve y  99 değerini taşıyacak ve ikinci satırın hiçbir etkisi olmayacaktı. Bu çözümü düzenleyiciye göndererek ne olacağına bakabilirsiniz. x 'in orijinal değerini saklayabileceğimiz bir yer olmalı ki o değeri daha sonra  y için tanımlayabilelim?
İpucu, bölüm4
İlk satırımız şöyle bir şey olursa xOriginal = x,  daha sonrası için x 'in ilk değerini saklamış oluruz. Ardından yapmamız gereken x = y. Ve en sonunda yx için ilk tanımlanan değeri yüklenmiş olur.
İpucu, bölüm 5
Buraya tıklayarak wikipedia'nın  değiş tokuş için verdiği pseudocode'u görebilirsiniz (başka bir dilde). Aynı sorunu aritmetik yolla kurnazca çözen ikinci metodu burada görebilirsiniz, ama bu metot yalnız sayılarla çalışır, metinlerle kullanılamaz.
Eğer bu alıştırmayı yapmayı başardıysanız sonraki derse geçmeye hazırsınız demektir. Aşağıda bulunan Sonraki düğmesine basın.