Python referans modeli ve liste atamalarındaki tuzak

Python dinamik veri tipleri kullanır. Yani, bir değişken adını kullanmadan önce deklare etmeniz gerekmez, aynı ismi farklı tipte değişkenlere atayabilirsiniz. Programcılığı kolaylaştıran bu özellik, bazı özel durumlarda beklenmedik şeylere yol açabilir.

Elinizde bulunan bir listeyi başka bir değişkene kopyalamak istediğinizi düşünelim. Önce şöyle bir atama yaptınız:

>>> a = [1,2,3]
>>> b = a
>>> b
[1, 2, 3]

Ve şimdi b’nin bir elemanında değişiklik yaptınız.

>>> b[1] = "merhaba"
>>> b
[1, 'merhaba', 3]

Ancak bu değişiklik, orijinal a listesini de etkiler.

>>> a
[1, 'merhaba', 3]

Bu davranış C gibi dillerde alışık olduğumuzdan farklı. Nedenini anlamak için Python’un atamaları nasıl yaptığını inceleyelim.

Okumaya devam et

Sıralı nesnelerle işlemler

Her türlü programda bulunan karar, döngü, fonksiyon gibi yapılardan bahsettik. Artık bir programın temel çatısını kurabilecek durumdayız ve spirali genişletiyoruz. Sıralı (“sequential”) veri tipleriyle yaygın olarak kullanılan, Python’a dahil (built-in) fonksiyonlarla devam ediyoruz. Tam bir liste için Python belgelerine bakabilirsiniz.

Okumaya devam et