Veri Yapıları
Integer
Integer'lar, Türkçede tam sayılar olarak çevrilmektedir ve sonsuz sayıda pozitif veya negatif değer alabilirler. Yanlarında herhangi bir işaret olmadan, doğrudan sayılar olarak ifade edilirler.
a = 5
b = -5
c = 20+12 #32
print(type(a))
print(type(b))
print(type(c))
class 'int'
class 'int'
class 'int'
Burada, a
, b
ve c
değişkenleri integer tipindedir ve onların veri türleri int
olarak gösterilmiştir.
Float
Float, Türkçeye ondalıklı sayı olarak çevrilebilir. Float'lar, reel sayıları ifade eder ve belirli bir limitleri vardır. Sayıların başlarında veya içlerinde bir nokta (.) ile ifade edilirler.
import math
a = 5.3
b = math.pi
c = .123123
d = 123456.123456
e = .1322 + 1.2314
print(type(a))
print(type(b))
print(b)
print(type(c))
print(type(d))
print(type(e))
class 'float'
class 'float'
3.141592653589793
class 'float'
class 'float'
class 'float'
Burada, a
, b
, c
, d
, ve e
değişkenleri float tipindedir. Özellikle b
değişkeni, math.pi
ile matematiksel bir sabit olan Pi sayısını temsil eder.
String
String veri tipleri, Türkçede karakter dizileri olarak tanımlanır ve yan yana sıralanmış karakter dizilerini ifade eder. Tek veya çift tırnaklar ile tanımlanabilirler.
a = "Melike Gökdemir"
b = '123456789'
c = "c2151c2x---+-*/^^^+%&"
d = " Türkiye Cumhuriyetinin kurucusu 'Mustafa Kemal ATATÜRK' tür. "
e = """ Her şeyi iyi yanından görmeyi kim öğretti bize?
Acıyı
görmeyen insan, umutsuzluğu yaşamayan, iliklerine dek
kederin işleyip yaralamadığı bir insan, mutluluktan,
umuttan, sevinçten ne anlar? Göğü görmeden, denizi gör-
meden maviyi anlamaya benzemez mi bu? """
print(e)
Her şeyi iyi yanından görmeyi kim öğretti bize?
Acıyı
görmeyen insan, umutsuzluğu yaşamayan, iliklerine dek
kederin işleyip yaralamadığı bir insan, mutluluktan,
umuttan, sevinçten ne anlar? Göğü görmeden, denizi gör-
meden maviyi anlamaya benzemez mi bu?
Bu kodda, e
değişkeni bir metin bloğunu temsil eder ve çok satırlı stringler üç çift tırnak ile tanımlanır.
my_string = "Python'da \"string\" ifadeleri kullanmak çok kolay!"
print(my_string)
Python'da "string" ifadeleri kullanmak çok kolay!
Yukarıdaki örnekte görüldüğü gibi, eğer bir string içinde çift tırnak kullanmak istiyorsak, bu karakterin önüne ters eğik çizgi () koyarak kaçış (escape) karakteri olarak belirtmemiz gerekir.
a = "Merhaba"
b = "Dünya"
c = a + " " + b + "!"
print(c)
d = "xyz"
e = d * 3
print(e)
f = "Merhaba"
print(len(f)) # len() fonksiyonu: Bu fonksiyon karakter diziler
inin (ve başka veri tiplerinin) uzunluğunu ölçer.
Merhaba Dünya!
xyzxyzxyz
7
Bu kod bloğunda, stringlerin birleştirilmesi, çoğaltılması ve uzunluklarının nasıl ölçüldüğü gösterilmiştir. len()
fonksiyonu, bir stringin uzunluğunu, yani içerdiği karakter sayısını döndürür.
Listeler
Listeler, birden fazla veri tipini bir arada tutabilen, değiştirilebilir (mutable) veri yapılarıdır. Listeler köşeli parantezler ile tanımlanır ve içerisindeki öğeler virgül ile ayrılır.
my_list = [1, 2, 3, "dört", "beş", ["Ankara", "İzmir", "İstanbul"]]
print(type(my_list))
print(my_list)
class 'list'
[1, 2, 3, 'dört', 'beş', ['Ankara', 'İzmir', 'İstanbul']]
Yukarıda my_list
, çeşitli tiplerde veri içeren bir liste örneğidir. Bu liste içinde başka bir liste de bulunmaktadır.
liste = [] # Boş liste
print(liste)
[]
Bu kod, boş bir liste oluşturur ve yazdırır.
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c)
d = ["x", "y", "z"]
e = d * 3
print(e)
f = [1, 2, 3, "dört", "beş"]
print(len(f))
[1, 2, 3, 4, 5, 6]['x', 'y', 'z', 'x', 'y', 'z', 'x', 'y', 'z']
5
Bu kod bloğunda, listelerin nasıl birleştirilebileceği, çoğaltılabileceği ve uzunluklarının nasıl ölçülebileceği gösterilmektedir.
alfabe = "abcçdefgğhıijklmnoöprsştuüvyz"
print(alfabe)
abcçdefgğhıijklmnoöprsştuüvyz
Bu, bir alfabe stringidir.
harf_listesi = list(alfabe) # Alfabe stringini liste dönüştürüyoruz.
print(harf_listesi)
['a', 'b', 'c', 'ç', 'd', 'e', 'f', 'g', 'ğ', 'h', 'ı', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'ö', 'p', 'r', 's', 'ş', 't', 'u', 'ü', 'v', 'y', 'z']
Bu kod, bir stringi list()
fonksiyonu kullanarak listeye dönüştürür.
isimler = "ahmet mehmet cem"
print(isimler.split()) # Stringi boşluk karakterine göre bölerek listeye dönüştürüyoruz.
['ahmet', 'mehmet', 'cem']
Bu kod, split()
metodu ile bir stringi boşluklara göre ayırarak bir liste oluşturur.
split()
ve list()
metodlarının farkı: split()
metodu, bir stringi belirli bir ayırıcıya göre parçalara ayırır ve sonuç olarak bir liste döndürür. list()
fonksiyonu ise verilen bir diziyi (string, tuple vb.) doğrudan bir listeye dönüştürür.
meyveler = ["elma", "armut", "çilek", "kiraz"]
print(meyveler[0]) # Listede 0. indekse erişiyoruz.
'elma'
Bu kod, meyveler
listesinin ilk öğesine erişir.
my_list = [1, 2, 3, "dört", "beş", ["Ankara", "İzmir", "İstanbul"]]
print(my_list[5]) # Listede 5. indekse erişiyoruz, bu da başka bir liste.
['Ankara', 'İzmir', 'İstanbul']
Bu kod, my_list
listesinin altındaki bir listeye erişir.
my
_list = [1, [2, 3, 4], 5, [6, 7, 8, 9], 10]
print(my_list[1]) # İç içe listelerden birinci elemanı alır.
print(my_list[1][0]) # İç içe listelerin içindeki ilk elemanı alır.
[2, 3, 4]
2
Bu kod, iç içe listelere erişim örneklerini gösterir.
Listelerin Öğelerini Değiştirmek
renkler = ["kırmızı", "sarı", "mavi", "yeşil", "beyaz"]
print(renkler)
['kırmızı', 'sarı', 'mavi', 'yeşil', 'beyaz']
Bu kod, renkler
adlı bir liste oluşturur ve yazdırır.
renkler[0] = "siyah"
print(renkler)
['siyah', 'sarı', 'mavi', 'yeşil', 'beyaz']
Bu kod, listelerdeki öğelerin nasıl değiştirilebileceğini gösterir. Burada renkler
listesinin ilk öğesi değiştirilmiştir.
Liste indeksleri dışında bir değere atama yaparsanız, IndexError
alırsınız.
Listeye Öğe Eklemek
liste = [2, 4, 5, 7, "ezgi"]
liste + [8] # Listeye yeni bir öğe eklemek için, eklemek istediğiniz öğeyi köşeli parantez içinde belirtmelisiniz.
[2, 4, 5, 7, 'ezgi', 8]
Bu kod, bir listeye yeni bir öğe ekler.
Bir listeye doğrudan bir string eklemeye çalışırsanız TypeError
alırsınız. Listeler yalnızca diğer listelerle birleştirilebilir.
Listeleri Birleştirmek
gokyuzu = ["bulut", "kuş", "yıldız", "güneş", "ay", "gezegenler"]
yeryuzu = ["insan", "kara parçaları", "toprak", "nesneler", "su"]
dunya = yeryuzu + gokyuzu
print(dunya)
['insan', 'kara parçaları', 'toprak', 'nesneler', 'su', 'bulut', 'kuş', 'yıldız', 'güneş', 'ay', 'gezegenler']
Bu kod, iki listeyi birleştirerek yeni bir liste oluşturur.
Tuple (Demetler)
Tuple'lar, birden fazla veri tipi barındıran ve değiştirilemeyen (immutable) veri tipleridir. Tuple'lar tanımlanırken normal parantez kullanılır ve öğeler virgülle ayrılır.
my_tuple = (1, 2, 3, 4, 5)
print(my_tuple[2])
3
Bu kod, tuple'ın üçüncü öğesine (indeks numarası 2 olan) erişir ve yazdırır.
my_tuple = (1, "hello", True, 3.14)
print(my_tuple)
(1, 'hello', True, 3.14)
Bu kod, farklı veri tiplerini içeren bir tuple örneğini gösterir.
Demetlerle Listelerin Farkı
Listeler değiştirilebilirken (mutable), demetler değiştirilemez (immutable). Yani demetler, tanımlandıktan sonra içerikleri üzerinde değişiklik yapılamaz.
demet = ('elma', 'armut', 'kiraz')
demet[0] = 'karpuz'
Bu kod çalıştırıldığında bir TypeError
hatası alınır çünkü demetlerde öğe değiştirme işlemi yapılamaz.
Dictionary (Sözlük)
Sözlükler, anahtar-değer çiftlerinden oluşur. Bu yapısı ile benzersiz bir anahtara karşılık gelen bir değeri saklar.
my_dict = {}
manav_fiyatlari = {"elma": 2, "portakal": 1, "muz": 3, "armut": 4}
print(type(manav_fiyatlari))
print(manav_fiyatlari["elma"])
print(manav_fiyatlari["muz"])
print(manav_fiyatlari["portakal"])
print(manav_fiyatlari.items())
class 'dict' 2
3
1
dict_items([('elma', 2), ('portakal', 1), ('muz', 3), ('armut', 4)])
Sözlükler, veri saklama ve hızlı erişim için optimize edilmiştir. Anahtar değerlerine göre hızlıca öğelere erişebiliriz.
sorted_dict = dict(sorted(manav_fiyatlari.items()))
print(sorted_dict)
{'armut': 4, 'elma': 2, 'muz': 3, 'portakal': 1}
Bu kod, sözlüğü anahtarlara göre sıralar.
user = {"name": "John Doe", "age": 30, "email": "[email protected]"}
print(user["name"])
print(user["age"])
print(user["email"])
John Doe
30
[email protected]
Bu kod, sözlüğün anahtarlarını kullanarak ilgili değerlere erişir ve onları yazdırır.
Kümeler (Set)
Python'daki kümeler, matematikteki kümelerle benzer özelliklere sahiptir; benzersiz elemanları saklar ve sırasızdır.
my_set1 = set([1, 2, 3, 4, 5])
my_set2 = {1, 2, 3, 4, 5}
print(type(my_set1))
print(type(my_set2))
class 'set' class 'set'
Bu kodlar, Python'da küme oluşturmanın iki farklı yolunu gösterir.
Boş bir küme oluşturmak için set()
fonksiyonunu kullanmalısınız; {}
kullanırsanız boş bir sözlük oluşturulur.
küme = set()
print(type(küme))
class 'set'
Bu kod, boş bir küme oluşturur.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set
2) # İki kümenin birleşimi
print(set1 & set2) # İki kümenin kesişimi
print(set1 - set2) # İlk kümede olup ikinci kümede olmayan elemanlar
print(set2 - set1) # İkinci kümede olup ilk kümede olmayan elemanlar
{1, 2, 3, 4, 5}
{3}
{1, 2}
{4, 5}
Bu kodlar, kümeler üzerinde birleşim, kesişim ve fark işlemlerini gösterir.
Boolean
Boolean değerleri yalnızca True
ve False
olmak üzere iki değeri alır. True
1 değerine eşdeğerken, False
0 değerine eşdeğerdir. Bu değerler genellikle koşullu ifadelerde ve mantıksal operasyonlarda kullanılır.
x = 10
y = 5
is_greater = x > y
print(is_greater)
is_equal = x == y
print(is_equal)
is_not_equal = x != y
print(is_not_equal)
is_even = x % 2 == 0
print(is_even)
True
False
True
True
Bu kod bloğu, çeşitli boolean ifadelerin nasıl kullanıldığını ve değerlendirildiğini gösterir.
Kullanıcıdan Veri Almak
Python'da kullanıcıdan veri almak için input()
fonksiyonu kullanılır. Bu fonksiyon, kullanıcıdan bir giriş alır ve bu girişi bir string olarak döndürür.
name = input("Adınız nedir? ")
print("Merhaba, " + name)
Adınız nedir? mehmet
Merhaba, mehmet
Bu kod, kullanıcıdan isim alır ve selamlar.
age = input("Yasiniz kac? ")
print("Yaşım : ", age)
Yasiniz kac? 25
Yaşım : 25
Kullanıcıdan yaşını alır ve yazdırır. age
değişkeninin tipi str
(string) olacaktır.
print(type(age))
class 'str'
Kullanıcının yaşının veri tipini gösterir.
print(f"{name} : {age}")
mehmet : 25
Kullanıcı adı ve yaşı ile bir cümle oluşturur.
String ve integer türündeki verileri doğrudan birleştirmeye çalışmak TypeError
hatasına neden olur.
Veri Dönüşümleri
Python'da bir veri tipini diğerine dönüştürmek, bazı işlemleri gerçekleştirmede önemlidir. Örneğin, kullanıcıdan alınan bir sayı ile matematiksel bir işlem yapmak istiyorsak, bu sayıyı string'den integer'a dönüştürmemiz gerekir.
age = int(age) # Kullanıcının yaşını integer'a çevirir
print(type(age))
class 'int'
Bu kod, age
değişkenini string'den integer'a dönüştürür ve veri tipini yazdırır.
print(f"{name} : {age + 10}")
ahmet : 35
Yaşa 10 ekler ve sonucu yazdırır. Bu işlemi yapabilmek için age
değişkeninin integer türünde olması gerekmektedir.
input() fonksiyonundan gelen veri her zaman bir karakter dizisidir (string). Bu nedenle, bu fonksiyondan gelen veriyle herhangi bir aritmetik işlem yapabilmek için, bu veriyi önce bir sayıya dönüştürmemiz gerekir. Sayısal bir değere dönüştürmek için int()
fonksiyonunu kullanırız.
# Daire alanı hesaplama:
çap = input("Dairenin çapı: ")
yarıçap = int(çap) / 2
# Pi sayımız sabit
pi = 3.14159
alan = pi * (yarıçap ** 2)
print("Çapı", çap, "cm olan dairenin alanı:", alan, "cm²'dir.")
Dairenin çapı: 12
Çapı 12 cm olan dairenin alanı: 113.09724 cm²'dir.
Bu kod, kullanıcıdan bir dairenin çapını alır, yarıçapı hesaplar ve dairenin alanını bulur.
Sayısal değerlerle çalışırken, veri tipinin uygun olması gerekmektedir. Bir string ifadeyi int'e veya float'a dönüştüremeyiz eğer bu string sayısal bir ifade içermiyorsa.
meyve = "elma"
tip_degisimi_elma = int(meyve)
Bu kod bir ValueError
hatası alır çünkü 'elma' bir sayısal değer değildir ve int()
ile sayıya dönüştürülemez.
sayi = input("Karesini almak istediğiniz sayıyı giriniz: ")
sonuc = int(sayi) ** 2
print(f'{sayi} nin karesi: {sonuc}')
Karesini almak istediğiniz sayıyı giriniz: 23
23 nin karesi: 529
Bu kod, kullanıcıdan bir sayı alır, bu sayının karesini hesaplar ve sonucu yazdırır.
sayi = 9563215465487987654132
Bu bir integer (tam sayı) örneğidir.
print(len(sayi)) # len() fonksiyonu sadece stringlerde (karakter dizilerinde) kullanılır!
Bu kod, bir TypeError
hatası alır çünkü len()
fonksiyonu bir integer üzerinde kullanılamaz.
sayi = str(sayi)
Bu kod, sayıyı bir string'e (karakter dizisine) dönüştürür.
print(len(sayi))
22
Bu kod, dönüştürülen string'in uzunluğunu, yani kaç karakterden oluştuğunu yazdırır.
num1 = 5
birinci_type = type(num1)
num2 = float(num1)
ikinci_type = type(num2)
print(birinci_type)
print(ikinci_type)
class 'int'
class 'float'
Bu kod bloğu, num1
değişkeninin veri tipini ve num2
değişkenine dönüştürüldükten sonra elde edilen yeni veri tipini yazdırır. Burada num1
bir tam sayıdan (int
) ondalıklı bir sayıya (float
) dönüştürülmüştür.