Python'ın İlk Günleri, Değişkenleri ve Veri Tipleri - Miuul
Bytes veri tipi bir değişkeni byte nesnesine dönüştürür. Eğer değişken özünde bir integer değer ise tam sayı değeri kadar boyutu olan bir byte ...
Python’ın İlk Günleri, Değişkenleri ve Veri Tipleri · Miuul

[![](/image/theme/logo-dark.png)](https://miuul.com)

- [Miuul Blog](https://miuul.com/blog)

[![Miuul Logo](/image/theme/logo-dark.png)](/)

Python’ın İlk Günleri, Değişkenleri ve Veri Tipleri


Makaleyi Paylaş

[Miuul Blog Python Programlama](https://miuul.com/blog)

# Python’ın İlk Günleri, Değişkenleri ve Veri Tipleri

Veri bilimi dünyasının önde gelen nesne yönelimli gelişmiş programlama dillerinden Python'ın ilk zamanlarına bir bakış atıp kısa bir giriş yapalım.

[Hande Küçükbulut](https://miuul.com/blog/yazar/hande-kucukbulut) • 30 Oca 2022

Makaleyi Paylaş

Python, veri bilimi dünyasının önde gelen nesne yönelimli gelişmiş programlama dillerinden. Bu yazıda Python’ın ilk günlerine dönecek, bu programlama dilindeki değişken isimlendirmelerine ve bu dildeki temel veri tiplerine kısa bir bakış atacağız. Vakit kaybetmeden başlayalım.

## **Python’ın hikayesi**

Python isminin her ne kadar piton yılanından geldiğine dair yaygın bir kanı olsa da programlama dilininin ortaya çıkış serüvenine göz attığımızda bu bilginin pek doğru olmadığını anlıyoruz. Python programlama dili eğitimini matematik ve bilgisayar bilimleri alanlarında tamamlamış Hollandalı Guido van Rossum tarafından 1989 yılında geliştirilmeye başlanıyor. Van Rossum, önceleri bir İngiliz komedi topluluğunun hazırladığı diziyi yakından takip ediyormuş. İşte Monty Python isimli altı kişilik bu topluluğun BBC için hazırladığı _Monty Python’s Flying Circus_ isimli dizi, 1989’da geliştirilmeye başlanan programlama dilinin isimlendirilmesinde ilham kaynağı oluyor.

![Guido van Rossum](https://miuul.com/image/article/621c95dbee2a2.jpg)

_Guido van Rossum_

Sonraları Google ve Dropbox gibi şirketlerde de çalışan Python’ın mimarı Van Rossum, buralarda çalışırken de Python’ı ihmal etmemiş ve bu dilin gelişim sürecinin önemli noktalarında katkılarını sunmayı sürdürmüş. 2018’de emekli olduğunu açıklamasının ardından muhtemelen dayanamayıp 2020’de bu sefer Microsoft’ta çalışmaya başlaması da kendisinin yaşamından enteresan denebilecek bir kesit.

![](https://miuul.com/image/article/621c95e2c59e6.png)

[_Guido van Rossum’un LinkedIn profili_](https://www.linkedin.com/in/guido-van-rossum-4a0756)

## **Python’da değişken isimlendirmeleri**

Herhangi bir programlama çabasının belki de ilk adımı veriyi bilgisayara takdim etme aşaması.

Bilgisayarımıza Python kurulumunu nasıl gerçekleştirilebileceğimize dair internette onlarca anlatıma rastlamak mümkün. Bu nedenle bu yazıda direkt olarak bu konuya odaklanmayacağız. Öte yandan bilgisayarınıza kurmadan da Python üzerinde çeşitli denemeler yapmak isterseniz bunu [Google Colab](https://colab.research.google.com/) aracılığıyla yapabilirsiniz.

Herhangi bir veri bilimi çalışmasında önceliğimiz adı üstünde veri. Veriyi nasıl tutacağımız, nasıl okuyacağımız, bir programlama çalışması dahilinde nasıl değerlendireceğimiz ise o verinin tipi ile bağlantılı. Python’da basitçe veriyi çalışmanın hafızasında tutabilmek için onu tanımlıyor, **değişken** yaratıyoruz.

Örneğin 13 sayısını bir onUc değerine atamak istiyor ve bu **onUc değişkeni** ni çalışmanın farklı noktalarında kullanmak istiyoruz. Bunu Python’da “onUc = 13” diyerek sağlamak hayli kolay ama sıradan bir değişkenin isimlendirmesinde dikkat etmemiz gereken bazı şeyler de yok değil:

Değişken isimleri genel olarak harfler veya alt tire ile başlayabilir. Öte yandan sayılarla değişken ismi başlatılmamalı. Ek olarak değişken isimlerinde **Türkçe karakterlere yer vermeme** yi bir alışkanlık haline getirmeli.

Yine ufak bir uyarıda bulunmak gerek: Python büyük-küçük harf duyarlı bir dil. Yaptığımız bir çalışmada onUc değişkenini, ONUC şeklinde çağıramayız.

Değişken isimlendirmelerinde farklı stillere rastlamak mümkün:

_Camel Case_ İsimlendirme: onUC

_Pascal Case_ İsimlendirme: OnUc

_Snake Case_ İsimlendirme: on\_uc

## **Python’da veri tipleri**

Python programlama dilinde değişkenlerde tutulan verilerin farklı tiplerde olabileceğini söyleyebiliriz. Python’daki temel veri tipleri şu şekilde sınıflandırılabilir:

Metin veri tipi (string)

Sayısal veri tipleri (integer, float, complex)

Sıralanabilir veri tipleri (list, tuple, range)

Haritalama veri tipi (dict)

Küme veri tipleri (set, frozenset)

Boolean veri tipi (bool)

İkili veri tipleri (bytes, bytearray,memoryview)

### **Metin veri tipi**

Python’da metinsel ifadeler **string** veri tipinde tutulur. stringVeri isimli değişkende “miuul” ifadesini tutmak için aşağıdaki işlem yeterli:

stringVeri = “miuul”

Öte yandan sayısal bir ifadenin de string olarak tutulabileceğini hatırlatmakta fayda var. Başta verdiğimiz onUc değişkeni örneğini anımsayalım. “onUc = 13” tanımlamasında 13 sayısını bir string olarak değil, bir sayısal veri olarak tutmuştuk. Ancak şu şekilde bir tanımlama yapılsaydı durum farklı olacaktı:

onUc = “13”

Tek tırnak, çift tırnak veya üç tırnak arasına yazılarak veya str() ifadesinde parantez içinde ifade edilerek bir değişkenin string olarak tutulması sağlanabilir. Bu ise örneğin onUc değişkeninin string olarak yukarıda gösterildiği şekilde tutulması durumunda:

onUc + onUc

işleminin sonucunda bize “1313” sonucunu verecektir. String ifadelerdeki toplama işlemi, sayısal verilerdeki toplama işleminden farklı çalışır. Kısaca sayısal görünümlü string ifadelere karşı uyanık olmalı.

### **Sayısal veri tipleri**

Python’da sayısal veri tiplerini üç ayrı başlık altında değerlendirebiliriz.

Integer (Int)

Integer ifadeler tam sayı olarak tutulan verilerdir. Bu veri tipinde sayısal ifadeler ondalık değer almaz. int() şeklinde tanımlama yapamak mümkündür.

Float

Float ifadeler integer değişkenlerden farklı olarak ondalık değerler alır. float(12) şeklinde tanımladığımız bir değişkenine dahi baktığımızda 12.0 değerini aldığını görürüz.

Complex

Lisede anlatılan karmaşık sayıları belki hatırlarsınız. Bu ifadelerin gerçek ve sanal kısımları vardır. Complex ifadeler bir örneğin (5j + 1) gibi ifadelerdir. Sabit sayı gerçek kısmı, 5j’li bölümü ise karmaşık ifadenin sanal kısmını gösterir.

Python’da complex(5) gibi bir tanımlama (5 + 0j) çıktısını karşımıza getirirken, complex(5j) ibaresi (0 + 5j) ile denktir.

### **Sıralanabilir veri tipleri**

Veri bilimi çalışmalarında sıklıkla karşımıza çıkan sıralanabilir veri tipleri de sayısal veri tipleri gibi üç ayrı başlıkta önümüze çıkıyor.

#### List

Listeler Python’da köşeli parantez \[\] içersinde tanımladığımız sıralı veri tipleridir. list() ile tanımlanabilir. Sıralı olmalarının dışında temel özellikleri şu şekilde sıralanabilir:.

Kapsayıcıdırlar. Yani kısaca içlerinde farklı veri türlerini tutabilirler. Tek tür veri tipi duyarlılıkları bulunmaz.

Değiştirilebilirdirler. Liste elemanlarına düzenlemek, farklı eleman atamaları yapmak mümkündür. Bu yapıları itibariyle aşağıda değineceğimiz tuple veri yapısından farklıdırlar.

Listelerin sıralı olması ise kısaca elemanlarına bulundukları index yardımıyla erişilebilir olması anlamına geliyor.

![](https://miuul.com/image/article/621c9605c2b57.jpg)

_\[‘m’,’i’,’u’,’u’,’l’\] listesi_

Görselde yer alan veri liste tipinde ve dolayısıyla sıralı olduğundan index yardımıyla listenin her bir elemanına erişilebilir. Index, bir listede elemanın bulunduğu yeri simgeler ve 1’den değil 0’dan başlar. Görseldeki listeyi a = \[‘m’,’i’,’u’,’u’,’l’\] diyerek a isimli değişkene atamış olsaydık a\[0\] dedimizde ‘m’ değerine ulaşacaktık. Benzer şekilde negatif index de kullanılabilir ve sondan 5. liste elemanı olması hasebiyle a\[-5\] diyerek aynı elemana ulaşabiliriz.

![](https://miuul.com/image/article/621c9625a3789.png)

#### **Tuple**

Python’da tuple veri tipi listelerin huysuz kardeşi gibi düşünülebilir. Tuple tanımlamaları parantezler () vasıtasıyla yapılır ve tuple() denerek oluşturulur. Listelerden en büyük farkları değiştirilemez yapılarıdır. Index yardımıyla tuple içinde yer alan elemanlara erişilebilir ancak bu elemanların yerlerine atama yapmak tuple veri tipi dahilinde söz konusu değildir.

Tuple içindeki bir eleman ancak değişkenin kendisinin listeye dönüştürülmesinin ardından değiştirilebilir ve sonrasında liste yeniden tuple veri tipine dönüştürülebilir.

![](https://miuul.com/image/article/621c96325b797.png)

#### **Range**

Range veri tipi belirli bir aralıktaki sayıları saklar. range(5) ifadesi 0’dan 5’e kadar (5 hariç) sayıları listelerken range(3,5) ibaresi bize 3 ve 4 sayılarını verir.

### **Haritalama veri tipi**

Bir başka veri tipi ise haritalama veri tipi olarak düşünülebilecek, günlük yaşamda kullandığımız sözlüklere benzer yapıda oldukları hayal edilebilecek bir veri tipidir. Python’da dictionary (dict) olarak karşımıza çıkarlar.

![](https://miuul.com/image/article/621c963c5717b.png)

#### **Sözlük yapısı**

Sözlük yapısı süslü parantezler {} ile tanımlanır ve anahtar kelime ile değer ilişkisi diyebileceğimiz bir yapı üzerine bina edilir. Özünde sözlükte aranan kelime ile kelimeye karşılık gelen bir açıklama gibi düşünülebilir. Sıralanabilir veri tiplerinden farklı olarak Python geliştirmelerinde 3.7 versiyonuna değin sözlükler sırasızdılar. Bunun yanı sıra temel özellikleri arasında şunlar bulunur:

Değiştirilebilirdirler.

Kapsayıcıdırlar.

Basit bir sözlük tanımlaması şu şekildedir.

kisi = {“isim”:”Hande”, “yas”:24}

Bu tanımlama dahilinde anahtar kelimeler üzerinden değer araması yapmak mümkündür. kisi\[“isim”\] dediğimizde Python bize “Hande” sonucunu verecektir.

### **Küme veri tipleri**

Küme veri tipleri dediğimizde ilkokul günlerimizden hatırlayacağımız kümeler konusu aklımıza gelebilir. Bu veri tiplerini iki başlığa ayırabiliriz.

#### **Set**

Her ne kadar sözlükler gibi süslü parantezler {} vasıtasıyla tanımlanıyor olsalar da set veri yapıları anahtar kelime-değer gibi ikili yapılar içermezler. Birçok yönüyle gerkçekten de ilkokul günlerimizdeki kümeleri andırırlar.

Değiştirilebilirdirler.

Sırasız ve eşisizdirler. Bir index yardımıyle set elemanlarına ulaşılamaz ve aynı değerden birden fazlasına set içerisinde rastlanmaz.

Farklı veri türlerini içerlerinde barındırabildiklerinden kapsayıcıdırlar.

frozenSet

Liste ve huysuz kardeşi tuple arasındaki ilişkiye benzer bir ilişki de set ve frozenSet arasında bulunuyor. Tuple veri yapılarına benzer şekilde frozenSet yapıları değiştirilemezler. Diğer tüm özellilkleri ise setlerle aynıdır.

### **Boolean veri tipi**

Bu veri tipi içi dünya siyahlar ve beyazlardan ibaret. bool() denerek oluşturulan bu yapı, doğru ve yanlış olmak üzere iki değer alabilir. True/False veya 1/0 olarak değerler alırlar.

### **İkili veri tipleri**

Veri bilimi çalışmalarında yukarıda bahsedilenlere nazaran daha az sıklıkta karşımıza çıkan ikili veri tipleri ise birkaç farklı alt başlığa sahip.

#### **Bytes**

Bytes veri tipi bir değişkeni byte nesnesine dönüştürür. Eğer değişken özünde bir integer değer ise tam sayı değeri kadar boyutu olan bir byte nesnesi yaratılır. Değişkenin sunduğu değer ise değişmez. bytes() ile oluşturulur.

#### **Bytesarray**

Bytes ile benzer bir mantıkla çalışır ancak değişkenin sunduğu değerde farklılaşma olabilir. bytesarray() ile oluşturulur.

#### **Memoryview**

Python’da arabellek protokolünü ortaya çıkarmanın güvenli bir yolu bellek görüntüleme nesnesi oluşturmaktır. Memoryview bu işlevi görür ve memoryview() ile yaratılır.

Python’a kısa bir giriş yaparak değişken isimlendirmelerini ve Python’daki temel veri tiplerini ele aldığımız bu yazı ilginizi çektiyse Miuul’un veri okuma, veri ön işleme, özellik geliştirme ve yapay öğrenme modelleri üretimi gibi tüm temel veri bilimi çalışmalarını yapabilmek için gerekli altyapıyı sunan [“Veri Bilimi için Python Programlama”](https://miuul.com/veri-bilimi-icin-python-programlama) uzmanlık programına göz atmayı unutmayın!

**Kaynaklar**

- [The Python Tutorial, Python Documentation](https://docs.python.org/3/tutorial/)
- [Learn Python Programming, Programiz](https://www.programiz.com/python-programming)
- [Python Variables, W3schools](https://www.w3schools.com/python/python_variables.asp)
- [Python bytes, bytearray Examples (memoryview), The Developer Blog](https://thedeveloperblog.com/python/bytes-python)

Etiketler

[Python /](https://miuul.com/blog/arama?arama=Python) [veri yapıları](https://miuul.com/blog/arama?arama= veri yapıları)

![](/image/user/621c946d950ad.jpg)

[Hande Küçükbulut](https://miuul.com/blog/yazar/hande-kucukbulut)

İlginizi Çekebilir

[Kural tabanlı sınıflandırma ile müşteri segmentasyonu](https://miuul.com/blog/kural-tabanli-siniflandirma-ile-musteri-segmentasyonu)Serdar Tafralı

[Type Hints in Python](https://miuul.com/blog/type-hints-in-python)Arda Akdere

[Python Kullanarak Zaman Serisi Bileşenlerine Bakış](https://miuul.com/blog/python-kullanarak-zaman-serisi-bilesenlerine-bak%C4%B1s)Nermin Babalık

Miuul topluluğunun bir parçası ol!

Abone Ol

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.

Skills of tomorrow [\[email protected\]](/cdn-cgi/l/email-protection#2e474048416e43475b5b42004d4143)

## Miuul Blog Keşfet

- Koordinatör
- [Elif Koç](https://miuul.com/blog/arama?arama=Elif Koç)
- [Okan Çetinkaya](https://miuul.com/blog/arama?arama=Okan Çetinkaya)

- Katkıda Bulunanlar
- [Koray SADIKLAR](https://miuul.com/blog/arama?arama=Koray SADIKLAR)
- [Erkan Şirin](https://miuul.com/blog/arama?arama=Erkan Şirin)
- [Miuul](https://miuul.com/blog/arama?arama=Miuul)
- [Çağla Öztürk](https://miuul.com/blog/arama?arama=Çağla Öztürk)
- [Onur Boyar](https://miuul.com/blog/arama?arama=Onur Boyar)
- [Şevval Ayşe Yurtekin](https://miuul.com/blog/arama?arama=Şevval Ayşe Yurtekin)
- [Hande Küçükbulut](https://miuul.com/blog/arama?arama=Hande Küçükbulut)
- [Cem İstanbullu](https://miuul.com/blog/arama?arama=Cem İstanbullu)
- [Oğuz Erdoğan](https://miuul.com/blog/arama?arama=Oğuz Erdoğan)
- [Simge Erek](https://miuul.com/blog/arama?arama=Simge Erek)
- [Ömer Çolakoğlu](https://miuul.com/blog/arama?arama=Ömer Çolakoğlu)
- [Melda Özdin](https://miuul.com/blog/arama?arama=Melda Özdin)
- [Merve Özdeş](https://miuul.com/blog/arama?arama=Merve Özdeş)
- [Nehir Günce Daşcı](https://miuul.com/blog/arama?arama=Nehir Günce Daşcı)
- [Ahmet Can Karaoğlan](https://miuul.com/blog/arama?arama=Ahmet Can Karaoğlan)
- [Tümünü Göster](https://miuul.com/blog/katkida-bulunanlar)

- Köşeler
- [Miuul Podcast](https://miuul.com/blog/arama?arama=Miuul Podcast)
- [Veri Bilimi](https://miuul.com/blog/arama?arama=Veri Bilimi)
- [Veri Mühendisliği](https://miuul.com/blog/arama?arama=Veri Mühendisliği)
- [Yapay Zeka](https://miuul.com/blog/arama?arama=Yapay Zeka)
- [Makina Öğrenimi](https://miuul.com/blog/arama?arama=Makina Öğrenimi)
- [Derin Öğrenme](https://miuul.com/blog/arama?arama=Derin Öğrenme)
- [Doğal Dil İşleme](https://miuul.com/blog/arama?arama=Doğal Dil İşleme)
- [Python](https://miuul.com/blog/arama?arama=Python)
- [SQL](https://miuul.com/blog/arama?arama=SQL)
- [CRM](https://miuul.com/blog/arama?arama=CRM)
- [R](https://miuul.com/blog/arama?arama=R)

- Kategoriler
- [R Programlama](https://miuul.com/blog/arama?arama=R Programlama)
- [Python Programlama](https://miuul.com/blog/arama?arama=Python Programlama)
- [Makine Öğrenmesi](https://miuul.com/blog/arama?arama=Makine Öğrenmesi)
- [SQL](https://miuul.com/blog/arama?arama=SQL)
- [CRM Analitiği](https://miuul.com/blog/arama?arama=CRM Analitiği)
- [Tavsiye Sistemleri](https://miuul.com/blog/arama?arama=Tavsiye Sistemleri)
- [Derin Öğrenme](https://miuul.com/blog/arama?arama=Derin Öğrenme)
- [Büyük Veri](https://miuul.com/blog/arama?arama=Büyük Veri)
- [NLP](https://miuul.com/blog/arama?arama=NLP)
- [Veri Okuryazarlığı](https://miuul.com/blog/arama?arama=Veri Okuryazarlığı)
- [Cloud](https://miuul.com/blog/arama?arama=Cloud)
- [Ölçümleme Problemleri](https://miuul.com/blog/arama?arama=Ölçümleme Problemleri)
- [Özellik Mühendisliği](https://miuul.com/blog/arama?arama=Özellik Mühendisliği)
- [NoSQL](https://miuul.com/blog/arama?arama=NoSQL)
- [Miuul'dan](https://miuul.com/blog/arama?arama=Miuul'dan)
- [Yazılım](https://miuul.com/blog/arama?arama=Yazılım)
- [Sosyal ağ](https://miuul.com/blog/arama?arama=Sosyal ağ)
- [Versiyon kontrol sistemleri](https://miuul.com/blog/arama?arama=Versiyon kontrol sistemleri)
- [Linux](https://miuul.com/blog/arama?arama=Linux)
- [Data Scientist](https://miuul.com/blog/arama?arama=Data Scientist)
- [Data Analyst](https://miuul.com/blog/arama?arama=Data Analyst)
- [Docker](https://miuul.com/blog/arama?arama=Docker)
- [Başarı Hikayeleri](https://miuul.com/blog/arama?arama=Başarı Hikayeleri)
- [Veri Sponsorları](https://miuul.com/blog/arama?arama=Veri Sponsorları)
- [Veri Yapıları ve Algoritmalar](https://miuul.com/blog/arama?arama=Veri Yapıları ve Algoritmalar)
- [AI](https://miuul.com/blog/arama?arama=AI)
- [CI/CD](https://miuul.com/blog/arama?arama=CI/CD)
- [Aşırı Öğrenme](https://miuul.com/blog/arama?arama=Aşırı Öğrenme)
- [Nesne Yönelimli Programlama](https://miuul.com/blog/arama?arama=Nesne Yönelimli Programlama)
- [Yazılım Mimarileri](https://miuul.com/blog/arama?arama=Yazılım Mimarileri)
- [Sürdürülebilir Stratejiler](https://miuul.com/blog/arama?arama=Sürdürülebilir Stratejiler)
- [İklim Bilimi](https://miuul.com/blog/arama?arama=İklim Bilimi)