Python Programlamaya Giriş

Python’da iki fonksiyonun bilinmesi önemlidir: help ve dir. help komutu girdiğiniz argümanının dokümantasyonunu gösterir, örneğin help (open) dosyaları okuyan ve yazan işlevin belgelerini gösterir. Bu komut Python’un birçok unsuru için yardımcı olur: Modüller, sınıflar, değişkenler, metotlar, fonksiyonlar v.b. Bir diğer yardımcı işlev dir (list) yerleşik liste veri türü ile ilişkili yöntemleri gösterir. Python’da girinti önemlidir. Blok yapısını belirleyen şey de budur; bu nedenle girinti, kontrol yapılarının kapsamını ve ayrıca sınıf ve işlev tanımlarını sınırlar. Dört boşluk varsayılan girinti için sayısıdır. Python semantiği girinti için başka sayıdaki boşluk ve sekmelerle çalışsa da, genellikle dört boşluk kullanılmalıdır.

Veri Tipleri

Veri tipleri bir nesnenin bir şey yapıp yapamayacağını veya bunun mantıklı olup olmadığını belirler. Diğer programlama dilleri bir nesnenin, nesnenin nesne üzerinde gerçekleştirileceği bir yerde saklanmayacağından emin olarak bir işlemin bir nesne için anlamlı olup olmadığını genellikle belirler (bu tip sisteme statik yazım adı verilir). Python ise bunu yapmaz. Bunun yerine bir nesnenin türünü nesneyle birlikte depolar ve bu işlemin yapılacak işlem için anlamlı olup olmadığını gerçekleştirilip gerçekleştirilmediğini denetler. Python’daki her değerin bir veri türü vardır. Her şey Python programlamada bir nesne olduğu için, veri türleri aslında sınıflar ve değişkenler bu sınıfların örneğidir. Python’da çeşitli veri türleri vardır. Bazı önemli türler aşağıda listelenmiştir.

Karakter Dizileri (Strings)

Unicode karakterlerin dizisidir. Dizeleri göstermek için tek tırnak veya çift tırnak kullanabilirsiniz. Çok satırlı dizeler üçlü tırnak ( ‘ ‘ ‘ veya “”” ) kullanılarak gösterilebilir.

>>> a = "İstatistik ve Bilgisayar Bilimleri "

>>> b = """KTÜ İSBB """

Sayılar (Numbers)

Tamsayılar, noktalı sayılar ve karmaşık sayılar Python sayıları kategorisine girer. Python’da int, float ve complex sınıf olarak tanımlanırlar. Bir değişkenin veya bir değerin hangi sınıfa ait olduğunu öğrenmek için type () işlevi kullanılabilir. Bir nesnenin belirli bir sınıfa ait olup olmadığını kontrol etmek için ise isinstance() işlevi kullanılabilir.

>>> a = 5

>>> print(a, "Değişken Türü:", type(a))

5 Değişken Türü: <class 'int'="">

>>> a = 2.0 

>>> print(a, "Değişken Türü:", type(a))

5 Değişken Türü: <class 'int'="">

>>> a = 1+2j

>>> print(a, "Karmaşık Sayımı? ", isinstance(1+2j,complex))

5 Karmaşık Sayımı? True

Tamsayılar herhangi bir uzunlukta olabilir, sadece mevcut hafıza ile sınırlıdır. Noktalı sayılar 15 ondalık basamağa kadar gidebilir. Tamsayı ve ondalık sayılar noktalarla ayrılır. 1 tamsayı, 1.0 ise noktalı sayı olarak kabul edilir. Karmaşık sayılar x+yj biçiminde yazılmıştır, burada x gerçek kısımdır ve y hayali kısımdır

>> a = 1234567890123456789 

a 1234567890123456789

>> b = 0.1234567890123456789 

b 0.12345678901234568

Boolen (Bool)

Boolean değerleri, False (Yanlış) ve True (Doğru) olarak iki sabit nesnedir. Gerçek değerleri temsil etmek için kullanılırlar. Sayısal bağlamlarda (örneğin, bir argüman olarak kullanıldığında aritmetik operatör) sırasıyla 0 ve 1 tam sayıları gibi davranırlar. Python’daki bir dize, gerçek değer için test edilebilir. Dönüş tipi Boolean değerinde (Doğru veya Yanlış) olacaktır. Aşağıdaki örnekte string türü bir değer tanımlanmıştır ve bu öğe üzerinde yapılan işlemlere göre True ya da False değerini döndürecektir.

>>> mesaj = " Merhaba KTÜ"

>>> mesaj.isalnum() #Tüm karakterlerin sayı olup olmadığını sınar.

False

>>> mesaj.startswith('K') #Dize K ile başlayıp başlamadığını sınar.

True

>>> mesaj.isdigit() #Dize basamak içerip içermediğini sınar.

False

Boolen değerleri mantıksal operatöre yanıt verebilir. Dahili tipteki Boolean değerlerin iki olası seçenekten (True ve False) yalnızca bir tanesini tutabileceğini unutmayın.

>>> True and False 

False 

>>> False or True 

True 

>>> False or False 

False

Listeler (List)

Liste, sıralı bir öğe dizisidir. Python’da en çok kullanılan veri tiplerinden biridir ve çok esnektir. Bir listedeki tüm öğelerin aynı türde olması gerekmez. Bir listeyi yapmak oldukça basittir. Virgülle ayrılmış öğeler köşeli parantez [] içine alınır.

>>> a = [1, 2.2, 'python']

Bir öğeden bir öğeyi veya bir öğe aralığını çıkarmak için dilimleme operatörü [] kullanabilir. Dizin Python’da sıfırdan başlar.

>>> a = [5,10,15,20,25,30,35,40]

a[2] = 15

>>> print("a[2] = ", a[2])

a[0:3] = [5, 10, 15]

>>> print("a[0:3] = ", a[0:3])

a[5:] = [30, 35, 40]

>>> print("a[5:] = ", a[5:])

Listeler değişebilir, bir listenin elemanlarının değeri değiştirilebilir.

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

>>> a[2]=4 

>>> a [1, 2, 4]

Demetler (Tuple)

Demetler listedeki gibi sıralı bir dizi öğedir. Tek fark, demetlerin değişmez olmasıdır. Demetler 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. Öğeler parantez içinde virgülle birbirinden ayrılır.

>>> t = (5,'program', 1+3j)

Öğeleri çıkarmak için dilimleme operatörü [] kullanılır ancak değeri değiştirilemez.

>>> t = (5,'program', 1+3j) 

t[1] = 'program'

>>> print("t[1] = ", t[1])

t[0:3] = (5, 'program', (1+3j))

>>> print("t[0:3] = ", t[0:3]) #Hata üretir, demetler değişmez

Kümeler (Set)

Tıpkı listeler, demetler, karakter dizileri, sayılar ve dosyalar gibi kümeler de Python’daki veri tiplerinden biridir. Kümeler, matematikteki “küme” kavramıyla sıkı sıkıya bağlantılıdır. Bu veri tipi, matematikteki kümelerin sahip olduğu bütün özellikleri taşır. Matematikteki küme özelliklerinden kesişim, birleşim ve fark gibi özellikler Python’daki kümeler için de geçerlidir. Kümeler {} veya set() şeklinde oluşturulabilir.

>>> a = {5,2,3,1,4}

>>> b = set(2,3,4,5)

İki kümede birlik, kesişme gibi işlemleri yapabilabilir. Kümeler benzersiz değerlere sahiptir.

>>> a = {1,2,2,3,3,3} 

a {1, 2, 3}

Kümeler sıralanmamış koleksiyon olduğundan endekslemenin hiçbir anlamı yoktur. Bu nedenle dilimleme operatörü [] kümelerde çalışmaz.

Küme Nasıl Değiştirilir?

Kümeler değiştirilebilir. Ancak sıralanmadıkları için indekslemenin bir anlamı yoktur. İndeksleme veya dilimleme kullanarak bir küme elemanına erişilemez veya değiştirilemez. Kümeler bunu desteklemiyor. Kümeye bir eleman eklemek için add() komutu kullanılır. Birden fazla eleman eklemek için update() komutunu kullanılır.

>>> kume = {2,3,4}

{2, 3, 4}

>>> kume.add(5)

{2, 3, 4, 5}

>>> küme.update([6,7,8])

{2, 3, 4, 5, 6, 7, 8}

Kümeden Eleman Çıkarma

Kümeden bir elemanı çıkarmak için discard() veya remove() komutu kullanılır. İkisi arasındaki tek fark eğer öğe kümede mevcut değilse discard () kullanılırken küme değişmeden kalır. Ancak remove() bu durumda bir hata oluşturacaktır.

>>> kume = {2, 3, 4, 5, 6}

{2, 3, 4, 5, 6 }

>>> kume.discard(4)

{2, 3, 5, 6}

>>> kume.remove(2)

{3, 5, 6}

Benzer şekilde pop() yöntemini kullanarak bir öğeyi kaldırabilir ve döndürülebilir. Bu komut öğeyi rastgele kümeden çıkarır. Tamamen keyfidir. Hangi öğenin çıkarılacağını belirlemenin bir yolu yoktur. Clear() kullanarak tüm öğeler kümeden kaldırılabilir.

>>> kume = {2, 3, 4, 6}

>>> kume.pop()

{3} #3 elemanı kümeden çıkarıldı

>>> kume.clear()

Python Küme İşlemleri

Kümeler, birleşim, kesişim, fark ve simetrik fark gibi matematiksel küme işlemlerini gerçekleştirmek için kullanılabilir. Bunlar operatörler veya yöntemlerle yapılabilir. İşlemler için aşağıdaki iki veri setini dikkate alınarak anlatılacaktır.

>>> A = {1, 2, 3, 4, 5}

>>> B = {4, 5, 6, 7, 8}
  • Birleşim Özelliği

Kümelerde birleşim işlemini | veya union() komutuyla gerçekleştirilebilir.

>>> A = {1, 2, 3, 4, 5}

>>> B = {4, 5, 6, 7, 8}

>>> print(A | B)

{1, 2, 3, 4, 5, 6, 7, 8}

>>> A.union(B)

{1, 2, 3, 4, 5, 6, 7, 8}
  • Kesişim Özelliği

Kümelerde kesişim özelliğini kullanmak için & veya intersection() operatörünü kullanılır.

>>> A = {1, 2, 3, 4, 5}

>>> B = {4, 5, 6, 7, 8}

>>> print(A & B)

{4, 5}

>>> A.intersection(B)

{4, 5}
  • Fark Özelliği

A ve B’nin (A – B) farkı sadece A’da bulunan ancak B’de olmayan bir eleman kümesidir. Benzer şekilde B – A’da B’de bulunan ancak A’da olmayan bir eleman kümesidir.

Fark işlemi “-“ operatör kullanılarak gerçekleştirilir. Aynı yöntem difference() kullanılarak da yapılabilir.

>>> A = {1, 2, 3, 4, 5}

>>> B = {4, 5, 6, 7, 8}

>>> print(A-B)

{1, 2, 3}

>>> A.difference(B)

{1, 2, 3}

>>> B.difference(A) {8, 6, 7}
  • Simetrik Fark Özelliği

A ve B’nin simetrik farkı hem A’da hem de B’de ve her ikisinde de ortak olanlar haricindeki eleman kümesidir. Simetrik fark ^ operatörü kullanılarak gerçekleştirilir. Aynı yöntem symmetric_difference() yöntemi kullanılarak gerçekleştirilebilir.

>>> A = {1, 2, 3, 4, 5}

>>> B = {4, 5, 6, 7, 8} 

>>> print(A ^ B)

{1, 2, 3, 6, 7, 8}

>>> A.symmetric_difference(B) {1, 2, 3, 6, 7, 8}
  • Diğer Python Küme İşlemleri

Yukarıda çoktan kullanmış olduğumuz birçok küme metodu vardır. Aşağıdaki listede ise küme nesneleri ile mevcut tüm yöntemlerin bir listesi sunulmuştur.

  • add() : Kümeye eleman ekler.
  • clear() : Tüm elemanları kümeden kaldırır.
  • copy() : Kümenin bir kopyasını döndürür.
  • difference() : İki veya daha fazla kümenin farkını yeni bir küme olarak döndürür
  • difference_update() : Farklar sonucu oluşan küme dışında kalanları kaldırır
  • discard() : Kümenin elemanını kaldırır. (Kaldırılan eleman kümenin elemanı değilse hiçbir şey yapmaz)
  • intersection() : İki kümenin kesişimini yeni bir küme olarak döndürür
  • intersection_update() : Kümeyi kendisi ve diğerinin kesişimiyle günceller
  • isdisjoint() : İki kümede boş bir kesişme varsa True değerini döndürür.
  • issubset() : Kümenin elemanlarını başka bir küme içeriyorsa True değerini döndürür.
  • issubset() : Kümenin elemanlarını başka bir küme içeriyorsa True değerini döndürür.
  • remove() : Bir elemanı kümeden kaldırır. Öğe bir üye değilse hata verir.
  • union() : Yeni kümedeki kümelerin birleşimini döndürür
  • update() : Kümeyi günceller

Sözlükler

Bir sözlük değerlerin bir anahtarla endekslenebildiği değiştirilebilir bir veri yapısıdır. Değer herhangi bir tipte olabilir, anahtar ise tüm değişebilir nesneler olmalıdır. Yani dizeler, tamsayılar, demetler ve kümeler sözlük olarak kullanılabilir.

Sözlükler maddelerin sıralanmamış bir koleksiyonudur. Diğer bileşik veri türleri yalnızca bir öğe olarak saklanırken bir sözlükte bir anahtar ve değer çifti bulunur. Değeri almak için anahtarı bilmek gerekir.

Sözlük oluşturmak için süslü parantez {} içinde öğeleri yerleştirmek yeterlidir. Sözlüklerin içine her öğeyi “anahtar : değer” şeklinde yazarak virgülle ayırarak yazılabilir. İstenirse dict() olarak da tanımlanabilir. Değerler herhangi bir veri tipinde olabilir ve tekrarlanabilir. Anahtarlar ise değişmez tipte (dize, sayı, değişmez elemanlı demet) ve benzersiz olmalıdır.

>>> sozluk1 = {} #Boş küme

>>> sozluk2 = {1: elma, 2: 'erik'} #integer anahtar

>>> sozluk3 = {'adi': 'Ahmet', 1: [2, 4, 3]} #Karışık anahtar

sozluk4 = dict({1:'elma', 2:'erik'}) #dict() şeklinde kullanım

Sözlüklerde değerlere ulaşmak istediğimizde diğer erişim yolları haricinde biraz önce bahsedilen anahtar kullanarak da erişilebilir. Anahtarı kullanarak değere erişmek için köşeli parantez [] içinde veya get () yöntemiyle kullanılabilir.

>>> sozluk = {adi:kadir, yas: 25}

>>> print(sozluk[' adi'])

kadir

>>> print(sozluk.get(' yas'))

25

Sözlükler değişebilir. Atama operatörü kullanarak yeni öğeler ekleyebilir veya mevcut öğelerin değerini değiştirebiliriz. Anahtar zaten mevcutsa, değer güncellenir, aksi takdirde yeni bir anahtar: sözlüğe sözlük çifti eklenir.

>>> bilgiler = {adi:'Zeki', 'yas': 64}

>>> bilgiler['yas'] = 60 #Değer güncelleme

>>>bilgiler['adres'] = 'Bursa' #Yeni bir anahtar ve değer ekleme

Bir sözlükte belirli bir öğeyi pop () yöntemini kullanarak kaldırılabilir. Bu yöntemle, belirlenen anahtarla öğe olarak kaldırılır ve değeri döndürür. Diğer bir yöntem ise popitem() ile kaldırmaktır. Bu yöntemle sözlükten rastgele bir öğeyi (anahtar, değer) kaldırmak ve döndürmek için kullanılabilir. Clear() yöntemi kullanılarak tüm öğeler bir kerede kaldırılabilir.

>>> sayi_kup = {1:1, 2:8, 3:27, 4:64, 5:125, 6:216}

>>> print(sayi_kup.pop(4)) #4 anahtarına karşılık gelen değeri kaldırdı.

64

>>> print(sayi_kup)

{1:1, 2:8, 3:27, 5:125, 6:216}
>>> print(sayi_kup.popitem())

(1:1)

>>> print(sayi_kup)

{2:8, 3:27, 5:125, 6:216}

>>> sayi_kup.clear() #Tüm anahtar ve değerleri siler.

>>> del sayi_kup #Sözlüğün kendisi silmemizi sağlar.

Tarihler ve Saatler

>>> Devamı Gelecek…

Değerli ziyaretçi Python Geliştirmek ve Çalıştırmak başlıklı yazımda ilginizi çekebilir. Değerli fikirleriniz için yorum yapmanızı bekliyorum.

Bir Cevap Yaz

Benzer Yazılarım