Site Loader

pythonearth.com Python Eğitim Serisinden tekrar herkese merhaba. Bu yazımızda Python Veri Türleri nden bahsedeceğiz. Öncelikle bu seride sizlere anlatmak istediklerimi Pycharm IDE’sini kullanarak anlatacağım. Bir önceki yazımızda Python’da kullanılan en iyi geliştirme ortamlarından (IDE) 5 tanesini sizlere kısaca anlatmaya çalışmıştım.Buradan size en uygun olanını seçip yükleyebilirsiniz.

Print Fonksiyonu

Daha sonra detaylı olarak işleyeceğimiz ama şu an yüzeysel olarak anlamamız gereken bir fonksiyon. Kodlarımızı yazdığımızda çıktı sonuçlarını görmek istersek print fonksiyonunu kullanırız. Kullanımı oldukça basittir.

print("merhaba!")
print(6+5)
print(365)

Çıktı:
merhaba!
11
365

Şimdilik bu kadarı bize yeterli olacaktır, daha sonra ayrı bir başlık altında bu fonksiyonu detaylarıyla öğreneceğiz. Gelelim Python Veri Türleri ne..

Python’da o anda elinizde bulunan bir verinin hangi tipte olduğunu bilmek son derece önemlidir. Çünkü bir verinin ait olduğu tip, o veriyle neler yapıp neler yapamayacağımızı belirler. Python’da her veri tipinin belli başlı özellikleri vardır. Dolayısıyla elimizdeki bir verinin tipini bilmezsek o veriyi programlarımızda etkin bir şekilde kullanamayız.

Bir programlama dilini oluşturan minik parçaları öğrenirken, bu parçaların ne işine yarayacağını düşünürüz. Sanki gereksiz şeylerle vakit kaybediyormuş gibi hissedebiliriz. En önemli ve en büyük programların bu küçük parçaların sistematik bir şekilde birleştirilmesiyle ortaya çıkacağını unutmayalım. Halbuki en karmaşık programların bile kaynak kodlarını incelediğimiz zaman göreceklerimiz karakter dizileri, listeler, demetler, sayılar ve buna benzer başka veri türleridir. En lezzetli yemekler birkaç basit malzemenin bir araya gelmesi ile ortaya çıkıyorsa, en iyi  programlar da ilk bakışta birbiriyle ilgisiz görünen çok basit parçaların incelikle birleştirilmesinden oluşur.

Python veri türleri kendi aralarında Immutable ve Mutable olmak üzere ikiye ayrılır. Immutable (değişmeyen) nesneler, bir kez oluşturulduktan sonra içeriği değiştirilemeyen sınıflardır yani bunlara herhangi bir ekleme, çıkarma, değişim yapamayız. Tam tersi olarak değiştirilebilen sınıflar da Mutable (değişebilir) olarak adlandırılır.

PYTHON VERİ TÜRLERİ

  1. Numbers (Sayılar)
  2. Boolean (Binary)
  3. String (Karakter)
  4. List (Listeler)
  5. Tuple (Demetler)
  6. Dictionary (Sözlükler)
  7. Sets (Kümeler)
  8. Frozenset (Kısıtlanmış Küme)

Yukarıda da olduğu gibi Python’da 8 adet veri türü vardır. Hadi bunlar hakkında biraz bilgi edinelim!

PYTHON VERİ TÜRLERİ

Immutable (Değiştirilemez)

1) NUMBER (SAYILAR)

Python’da sayıları 4’e ayırırız. Bunlar ;

  • Integer

  • Float ( floating point number)

  • Long Integer

  • Complex

Integer:  Türkçe karşılığı  Tam Sayı olan ve negatif-pozitif fark etmeyen sayı topluluğudur. 3,5,-56,2020,-859 integer sayılara örnektir.

Float: Türkçe karşılığı ondalıklı sayılardır. Burda ‘ayraç olarak virgül değil, nokta kullandığımıza‘ dikkat edelim. (3.14), (1.60), (-85.05), (1.25)

Long Integer: Integer veri türünün yetersiz kaldığı durumlarda daha uzun sayıları ifade etmek için kullanılır.

Complex: Türkçe karşılığı karmaşık sayılardır. Gömülü sistemlerde sıkça kullanılan gerçek ve sanal olmak üzere iki kısımdan oluşan sayı tipidir. (1+2j), (5+13j), (4+6j)

2) BOOLEAN (BOOL-BİNARY)

Bilgisayar dili iki adet değer üzerine kuruludur: 1 ve 0.
1=True
0=False anlamına gelir. Bilgisayar biliminde herhangi bir şeyin değeri ya 1’dir(true) ya da 0’dır(false). İşte bu true ve false olarak ifade edilen değerlere Boolean adı verilir.

>>> True + True
2

>>>False + True
1

>>> False + False
0

>>> True * False
0

Python’da bool veri türü, girilen bir değeri standart doğrulama testlerini kullanarak true ya da false değerine çevirir. Yani kısaca bir verinin değerini sorgulamaya yarar. Bool() fonksiyonunu kullanarak verilerin değerini sorgularız. Örneğin;

>>>bool(3)
Çıktı: 
True
>>>bool(0)
Çıktı:
False

değer vermeyi unutsaydık ne olurdu?

>>>bool()
Çıktı:
False

Bilgisayar biliminde her şeyin bir bool değeri vardır. Bununla ilgili genel kuralımız şu; 0 (sıfır) değeri ve boş veri tipleri False’tur. Bunlar dışında kalan her şey ise True’dur.

Boş liste, boş tuple, boş string ve boş dictionary  False değerini verir.

>>> bool(25)

True

>>> bool("karpuz")

True

>>> bool(" ")

True

>>> bool("     ")

True

>>> bool("Python")

True

>>> bool("0")

True

>>> bool(0)

False

>>> bool("")

False
  • NOT: 0’ın bir sayı, “0” ‘ın ise bir karakter dizisi olduğunu unutmayalım. Sayı olan 0’ın bool değeri False’tur, ama karakter dizisi olan “0”’ın değeri True’dur.

Karşılaştırma İşleçleri

 Karşılaştırma İşleçleri en az iki değer arasında karşılaştırma ilişkisi kurar. Hemen bir örnek yapalım;

>>> 3 == 3
True

>>> 5<=3
False

>>>4!=4
False

>>> "merhaba" == "Merhaba"
False

>>>True == False
False

Karşılaştırma işleçlerini daha sonra koşul ifadelerinde bol bol kullanacağız.

 3)STRİNG (Karakter Dizisi)

Metin türleridir yani karakter dizileridir. Python’da string bir ifade tanımlamak için o ifadeyi tek, çift ya da üçlü tırnak içine almamız gerekir.

print("merhaba nasılsın?")
print('iyiyim,sen nasılsın')
print('''ben de iyiyim''')


Çıktı:
merhaba nasılsın?
iyiyim,sen nasılsın?
ben de iyiyim

Python’da tırnak arasına yazılan her şey string olarak kabul edilir. Bu kural tırnakların içi boş olsa bile geçerlidir. Şöyle ki, örneğin bu bir karakter dizisidir;

print("ğ")

Aynı zamanda bunlar da birer karakter dizisidir;

 print("")
 print(" ")

1.satır içi boş bir karakter dizisidir.

2.satır ise içinde bir adet  boşluk karakteri bulunduran bir karakter dizisidir.

Bu ikisi arasındaki farka dikkat etmemiz gerekir. Python’da ‘boş karakter dizisi ve ‘bir adet boşluktan oluşan karakter dizisi birbirlerinden farklı iki kavramdır. Yani bu dizilerden ilki boş diğeri ise doludur. Dilerseniz birkaç örnek daha yapalım.,

print("Finaller de yaklaşıyor.")
print("elma,armut,karpuz,üzüm")
print('123456789')
print(" ")
print('''ne tür müzikler seversin?''')
print("evde kal")
print('é!^4#½{])/%+')

Çıktımız şöyle olacaktır;

Finaller de yaklaşıyor.
elma,armut,karpuz,üzüm
123456789

ne tür müzikler seversin?
evde kal
é!^4#½{])/%+

 

4) TUPLE (Demet)

Farklı veri türlerinin bir araya gelerek oluşturduğu veri türleridir yani bir Tuple içinde tamsayı, ondalık sayı, metin ve hatta bir Tuple içinde başka bir Tuple bile olabilir. Tuple’lar, verileri yazmaya karşı koruma için kullanılır ve genellikle dinamik olarak değişemediği için listeden daha hızlıdır. Karakter dizilerinin(string) özelliği tırnak içinde olmasıydı. Listeler ve Tuple’lar görünüş itibariyle birbirine benzerler, onları şu şekilde ayırt edebiliriz; Listelerin ayırt edici özelliği köşeli parantez içinde olmaları, Tuple’ların (demetlerin) ayırt edici özelliği ise normal parantez içinde olmalarıdır.

demet=("ahmet","corona",2020,46)
print(demet)

Çıktı;

'ahmet', 'corona', 2020, 46

Python’da tuple’ları tanımlamanın bir yolu daha vardır mesela yukarıdaki Tuple’ı şöyle de yazabiliriz ;

demet = "ahmet","corona",2020,46

Yani parantez işaretlerini kullanmadan, ögeleri yalnızca virgül işareti ile ayırdığımızda da elde ettiğimiz şey bir demet oluyor ve aynı çıktıyı veriyor. Demet oluşturmak için tuple( )  adlı bir fonksiyondan da yararlanabiliriz.

demet= tuple('123456')
print(demet)

Çıktı:

'1','2','3','4','5','6'

Tek Öğeli bir Demet Tanımlamak: Burada dikkat etmemiz gereken çok önemli bir kural var eğer tek elemanlı bir veri türü ile bir Tuple oluşturacaksak elemanın sonuna bir virgül koymamız gerekir yoksa yorumlayıcı bu türü String olarak alacaktır. Şu şekilde kullanım yanlıştır;

tuple='bilgisayar'
tuple='bilgisayar',

Doğru olan bu şekildedir. Böyle yazıldığı zaman tuple olarak algılanır.

5) FROZENSET  (Kısıtlandırılmış Küme)

Bir diğer adıyla dondurulmuş küme. Kümeleri Mutable kısmında yani hemen aşağıda anlattık. İsterseniz  frozenset’i okumadan önce aşağıda kümelere göz atın, böylece daha iyi kavramış olursunuz. Frozenset’in Set’ten tek farkı değiştirilemez oluşudur. Yani ekleme, silme, değiştirme işlemlerini yapamayız.  Bu konu hakkında daha sonra ayrı bir SET başlığı altında detayları işleyeceğiz.Öncelikle kısıtlanmış kümeyi tanımlayalım.

Nasıl ki normal bir küme tanımlarken set() fonksiyonunu yazıyorduk burada da frozenset() fonksiyonunu kullanıyoruz;

kısıtlanmıs_kume =frozenset()

Şimdi de normal bir kısıtlanmış küme oluşturalım;

kısıtlanmıs_küme =(["pazartesi",2020,"mayıs"])
print(kısıtlanmıs_küme)

Çıktı:
frozenset['pazartesi',2020,'mayıs']

Mutable (Değiştirilebilir)

1) LİST (Liste)

Listeler de Tuple gibi farklı veri türlerinin bir araya gelmesiyle oluşmuştur. Listeler tam sayı ,ondalık sayı, string, tuple ve kendi içinde listelerden oluşabilir. Tuple veri türünden farkı ise bu veri türüne eleman ekleme ,çıkarma ve değiştirme işlemlerini yapabiliyor olmamızdır.

Bir liste elde etmek için ögeleri birbirinden virgülle ayırıp, bunların hepsini köşeli parantezler içine alıyoruz.

liste=["domates","biber","patlıcan"]
print(liste)

Çıktı:
['domates','biber','patlıcan']

Evet liste tanımlamak bu kadar basit bir işlem.

liste=["özlem","diren","irem",1,2,3.5,2+3j]
print(liste)

Çıktı:
['özlem','diren','irem',1,2,3.5,(2+3j)]

Yukarıdaki örnekte de görüldüğü gibi liste içinde hem karakter dizileri hem de sayılar var. Hatta liste içinde liste bile yazabiliriz;

liste=["özlem","diren","irem",["domates","biber","patlıcan"],1,2,3.5,2+3j]
print(liste) 
Çıktı:
['özlem','diren','irem',['domates','biber','patlıcan'],1,2,3.5,(2+3j)]

Tıpkı boş bir karakter dizisi oluşturabildiğimiz gibi boş bir liste de oluşturabiliriz.

karakter= ""
liste=[]

2) Dictionary (Sözlük)

Sözlükler de Tuple ve List veri türleri gibi içerisinde farklı veri türleri bulundurur. Sözlükler iki parçadan oluşur; keys (anahtar)ve value (değer). Keys kısmı sadece integer ve string veri türünde olabilir, value kısmı ise bütün veri türlerine açıktır.Sözlükler süslü parantezler ile ifade edilir. Yani bir  sözlüğün görünümü şöyledir;

sözlük = {}

Sözlükler anahtar değer ilişkisine dayanır her değerin bir anahtar karşılığı vardır. Key – value çiftleri halinde veriler tutulur.

Yani ilkokuldan beri hayatımızda olan sözlüklerle aynı mantığa sahiptir. Anahtar(key) olarak yazdığımız kelimenin karşısına bize ne çağrıştırdığını yazarız ve bu da onun değeri (value) olur. Ana iskeletimiz bu şekildedir;

sözlük={"key" : "value"}

Hadi şimdi daha iyi anlamak için bir sözlük örneği yapalım.

sözlük={"çilek" : "strawberry" , "elma" : "apple" , "üzüm" : "grape"}
print(sözlük)

Çıktı:
{'çilek':'strawberry' , 'elma': 'apple' , 'üzüm': 'grape'}

3) SETS (Kümeler)

Adından da az çok tahmin edebileceğimiz gibi kümeler, matematikten bildiğimiz “küme” kavramıyla çok benzerdir. Bu veri tipi, matematikteki kümelerin sahip olduğu bütün özellikleri taşır. Yani kesişim, birleşim ve fark gibi özellikler Python’daki kümeler için de geçerlidir. Listeler, demetler ve sözlüklerin aksine kümelerin ayırt edici bir işareti yoktur. Küme oluşturmak için set() adlı özel bir fonksiyondan yararlanıyoruz. Öncelikle boş küme oluşturalım;

bos_küme = set()

İçerisinde öge bulunduran kümeleri de şöyle oluşturuyoruz;

küme= set(["özlem","karpuz","kedi"])
print(küme)

Çıktı:
{'özlem','karpuz','kedi'}

Gördüğünüz gibi yukarıda küme oluştururken listelerden yararlandık.Aynı zamanda demetlerden, sözlüklerden, karakter dizilerinden de küme oluşturabiliriz ama sayılardan küme oluşturamayız. Mesela demetlerden küme oluşturmayı deneyelim;

demet= ("elma","armut","kavun")
küme=set(demet)
print(küme)


Çıktı:
{'elma','armut','kavun'}

Bu aşamada önce bir demet tanımladık daha sonra 2.satırda kümemizi set(demet) olarak atadık ve printledik.

Sayılardan küme oluşturmayı denediğimizde ise aşağıdaki gibi bir hata alırız.

>>>set(25)

Çıktı:
TypeError: 'int' object is not iterable

 

Python Eğitim Serisinde üçüncü dersin sonuna geldik. Bu yazıda Python Veri Türleri anlatmaya çalıştık. Eklememizi istediğiniz başka konular ve sorularınız varsa lütfen yorum bölümünde belirtiniz. Aynı zamanda  eksik ve yanlış gördüğünüz yerler için de iletişime geçiniz.

Bir sonraki yazımızda Değişken Oluşturma ve Print Fonksiyonunu anlatacağız, görüşmek üzere. Hoşçakalın. 😊

 

 

Post Author: Özlem Boran

8 Replies to “Python Veri Türleri”

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir