Yeni Başlayanlar İçin Python 3 Temel Kavramlar Prof. Dr. Timur Karaçay  - Kitap
Yeni Başlayanlar İçin

Python 3

Temel Kavramlar

3. Baskı, 
Mart 2017
Kitabın Detayları
Dili:
Türkçe
Ebat:
16x24
Sayfa:
458
Barkod:
9789750242281
Kapak Türü:
Karton Kapaklı
Kitabın Fiyatı:
425,00
İndirimli (%59):
175,00
Stoktan hemen gönderilir.
Kitabın Açıklaması
Gördüğü yoğun ilgi sonucunda, kısa sürede 3. Baskısını yapan kitap Python'a giriş niteliğindedir. Hiç programlama bilmeyenlere programlamanın temellerini ve Python'u öğretmek amacıyla yazılmıştır.
Sisteminize Python'u nasıl yükleyeceğinizden başlayarak, Python araçlarını tanıtan kitap, 100'den fazla örnek uygulama ve 150'den fazla program ile konuları akıcı bir üslup ve pedagojik yöntemlerle anlatmaktadır.
Python etkileşimli, yorumlayıcı ve nesne tabanlı bir dildir. Java, VBasic, PHP, ASP, JSP gibi dillerinin bütün hünerlerine fazlasıyla sahiptir. Onu web uygulamalarınızda bir dili olarak kullanabilirsiniz. Python nesne tabanlı bir dildir. Python'da her şey nesnedir. Nesne tabanlı programlamanın bütün hünerlerini onda görebilirsiniz.
Otuzdan çok kitaba imza atmış olma yanında TDK ve TÜBA'nın bilimsel terim üretme çalışmalarına etkin olarak katılan yazar, bu kitapta da Türkçe bilim terimlerini kullanmaya özen göstermiştir.
Kitabın Konu Başlıkları
.
Programlamanın Temel Kavramları
.
Sayısal Veri Tipleri
.
String İşlemleri
.
Operatörler
.
Gömülü Veri Tipleri
.
Gömülü Fonksiyonlar
.
Veri Yapıları Üzerinde İşlemler
.
Veri Yapıları Arasında Dönüşüm
.
Module Oluşturma
.
Dosya İşlemleri
.
Python Kütüphanesi
Kitabın İçindekileri
I Python'a Giri³ 1 
1 Python Nedir? 3 
1.1 Python Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 
2 Amaçlar 5 
2.1 Amaçlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 
2.2 Python'un Nitelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
2.3 Python'un Özellikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
2.4 Python'un Uygulama Alanlar . . . . . . . . . . . . . . . . . . . . . . . . . 7 
2.5 Python'un Özelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
3 Hangi Python 9 
3.1 Farkl Python Sürümleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
3.2 Hangi Seriyi seçmeliyim? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
3.3 Python Nasl Kurulur? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
4 Python Nasl Çal³r? 11 
4.1 Python Sözdizimi (syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
4.2 Editörler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
4.3 PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 
4.3.1 Window PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . 16 
4.3.2 WinPython Powershell Prompt . . . . . . . . . . . . . . . . . . . . 16 
4.4 WinPython Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
4.5 IPython Qt Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
4.6 IDLEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
ii ÇNDEKLER 
4.7 Program Yazma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
4.8 Spider Editörü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
4.9 Spider'i Kullanm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 
5 Matematiksel i³lemler 21 
6 Temel Kavramlara Ksa Bak³ 29 
6.1 type() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 
6.2 bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 
6.3 Do§ruluk Testi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 
6.4 or/and Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 
6.5 Kar³la³trma Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 
6.6 Saysal Tipleri Kar³la³trma . . . . . . . . . . . . . . . . . . . . . . . . . . 34 
6.7 Dizisel Tipler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 
6.8 Python'da Her “ey Nesnedir! . . . . . . . . . . . . . . . . . . . . . . . . . 36 
6.9 Aduzay (namespace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 
6.10 Veri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 
6.11 Veri Tipleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 
6.11.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 
6.11.2 type() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 
6.11.3 id() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 
6.12 ³lemler (operations) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 
6.12.1 De§i³ken Kavram . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 
6.12.2 Pythonda De§i³kenler . . . . . . . . . . . . . . . . . . . . . . . . . 41 
6.12.3 Etiket De§i³tirme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 
6.13 Snrsz Sayda Veri Tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 
6.14 Python'a Gömülü Veri Tipleri . . . . . . . . . . . . . . . . . . . . . . . . . 46 
6.15 Python'da Saysal Veri Tipleri . . . . . . . . . . . . . . . . . . . . . . . . . 47 
6.16 Mantksal (boolean) tip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 
6.16.1 Do§ruluk De§eri Testi . . . . . . . . . . . . . . . . . . . . . . . . . 48 
6.16.2 Kar³la³trma Operatörleri . . . . . . . . . . . . . . . . . . . . . . . 49 
6.17 Dizisel Tipler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 
6.17.1 string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 
6.17.2 unicode string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 
6.17.3 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 
6.17.4 tuple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 
6.17.5 bytearray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 
6.17.6 bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 
ÇNDEKLER iii 
6.18 set (küme) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 
6.19 le (dosya) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 
6.20 De§i³ebilir ve De§i³emez Tipler . . . . . . . . . . . . . . . . . . . . . . . . 55 
6.20.1 Karekterler ve Metinler . . . . . . . . . . . . . . . . . . . . . . . . 55 
6.21 Giri³/Çk³ (I/O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 
6.22 If else 
Yaplar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.23 Döngüler (Loops) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 
6.23.1 for döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 
6.23.2 while döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 
6.23.3 stack (y§t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 
6.23.4 queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 
6.24 Python'da Mukayese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 
6.25 range() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 
6.26 xrange() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 
7 De§i³kenler 61 
7.1 Python'da adlandrma Kurallar . . . . . . . . . . . . . . . . . . . . . . . 63 
8 namespace (aduzay) 65 
8.1 Aduzay Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 
8.2 Ad nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 
8.3 Kapsanma Alan (scope) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 
8.4 Yerel ve Global De§i³kenler . . . . . . . . . . . . . . . . . . . . . . . . . . 75 
8.5 Etkin Aduzay D³ndaki Ö§elere Eri³im . . . . . . . . . . . . . . . . . . . 76 
8.6 Ad Kar³kl§n Önleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 
9 Gömülü Tipler 79 
9.1 Gömülü Olmayan Tipleri Ça§rma . . . . . . . . . . . . . . . . . . . . . . 80 
9.2 None , Python'da Null Nesnesi . . . . . . . . . . . . . . . . . . . . . . . . 81 
9.3 Ba³lca Gömülü Snar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 
9.4 Gömülü Fonksiyonlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 
9.5 Python'da iterable ve iterator . . . . . . . . . . . . . . . . . . . . . . . . . 83 
9.5.1 Gezinilir Ambarda Döngü . . . . . . . . . . . . . . . . . . . . . . . 85 
9.6 Gömülü (built–in) Fonksiyon Örnekleri . . . . . . . . . . . . . . . . . . . . 86 
9.7 Gerçel Saylar Üzerinde ³lemler . . . . . . . . . . . . . . . . . . . . . . . . 97 
9.8 Dizisel Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 
9.9 Sralama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 
iv ÇNDEKLER 
10 Python'da Sabitler 101 
10.1 Gömülü (built–in) Sabitler . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 
10.2 Modül Sabitleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 
10.2.1 String Modülünün Sabitleri . . . . . . . . . . . . . . . . . . . . . . 102 
10.2.2 string Modülünün Sabitlerini Yazdrma . . . . . . . . . . . . . . . 103 
10.3 site Modülünün Sabitleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 
10.4 Python'dan Çk³ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 
10.5 Kullancnn Tanmlad§ Sabitler . . . . . . . . . . . . . . . . . . . . . . . 108 
11 Saylar 109 
11.1 Saysal Tipler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 
11.2 Pythonda Saysal Veri Tipleri . . . . . . . . . . . . . . . . . . . . . . . . . 110 
11.2.1 type : int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 
11.2.2 type : long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 
11.2.3 type : octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 
11.2.4 type : hexadecimal . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 
11.2.5 type: complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 
11.3 Binary Saylar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 
12 String 119 
12.1 Python'da Birle³ik Veri Tipleri . . . . . . . . . . . . . . . . . . . . . . . . 119 
12.2 Python'da String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 
12.3 Python'da Karekterler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 
12.4 Python'da String Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 
12.5 String ³lemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 
12.6 Stringleri Birle³tirme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 
12.7 Altstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 
12.7.1 Python'da Altstring ³lemleri . . . . . . . . . . . . . . . . . . . . . 125 
12.7.2 String çinden Karekter Seçme . . . . . . . . . . . . . . . . . . . . 126 
12.7.3 Altstring Seçme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 
12.8 Python'da Ba³lca String Operatörleri . . . . . . . . . . . . . . . . . . . . 128 
12.9 String Metotlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 
12.10String Biçemleme Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . 131 
12.11Program çinde Açklamalar . . . . . . . . . . . . . . . . . . . . . . . . . . 131 
12.11.1 oat – int dönü³ümleri . . . . . . . . . . . . . . . . . . . . . . . . 136 
13 Mantksal ³lemler 137 
13.1 bool Veritipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 
ÇNDEKLER v 
13.2 Nesnelerin Boolean De§erleri . . . . . . . . . . . . . . . . . . . . . . . . . 138 
13.2.1 Mantksal ³lemler (boolean operations) . . . . . . . . . . . . . . . 140 
13.3 Kar³la³trma Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 
14 Operatörler 145 
14.1 Operatör Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 
14.2 Aritmetik Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 
14.2.1 Python'da Bölme ³lemi . . . . . . . . . . . . . . . . . . . . . . . . 146 
14.3 Atama Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 
14.3.1 int() ve float() Metotlar . . . . . . . . . . . . . . . . . . . . . . 152 
14.3.2 Mantksal Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . 153 
14.3.3 Üyelik Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 
14.3.4 Denklik Operatörleri . . . . . . . . . . . . . . . . . . . . . . . . . . 154 
14.3.5 Bitsel Operatörler . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 
15 Çkty Biçemleme 157 
15.1 string çktlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 
15.2 format() metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 
15.2.1 Parametre Seçimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 
15.3 Ba³ka Biçemleme Yöntemleri . . . . . . . . . . . . . . . . . . . . . . . . . 163 
15.3.1 Tek Satra Yazdrma . . . . . . . . . . . . . . . . . . . . . . . . . . 164 
15.3.2 Çkty Tablo Yapma . . . . . . . . . . . . . . . . . . . . . . . . . . 165 
16 Döngüler 167 
16.0.1 Döngüyü Denetleyen Deyimler . . . . . . . . . . . . . . . . . . . . 167 
16.1 for döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 
16.1.1 list üzerinde for döngüsü . . . . . . . . . . . . . . . . . . . . . . . 168 
16.1.2 string üzerinde for döngüsü . . . . . . . . . . . . . . . . . . . . . 171 
16.1.3 range üzerinde for döngüsü . . . . . . . . . . . . . . . . . . . . . . 172 
16.1.4 tuple üzerinde for döngüsü . . . . . . . . . . . . . . . . . . . . . . 174 
16.1.5 Döngü çinde if 
else . . . . . . . . . . . . . . . . . . . . . . . . . . 175
16.2 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 
16.2.1 continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 
16.2.2 pass anahtar sözcü§ü . . . . . . . . . . . . . . . . . . . . . . . . . . 178 
16.3 while döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 
16.3.1 Örnekler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 
17 list 189 
vi ÇNDEKLER 
17.1 list Olu³turma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 
17.2 list ile array Yaplarn Kar³la³trma . . . . . . . . . . . . . . . . . . . . . 190 
17.3 list Ö§elerine Eri³im . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 
17.3.1 Dilimleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 
17.4 list de§i³ebilir (mutable) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 
17.5 list Üzerinde Ba³lca Metotlar . . . . . . . . . . . . . . . . . . . . . . . . . 194 
17.6 Bir dilim yerine ba³ka bir list koyma . . . . . . . . . . . . . . . . . . . . . 195 
17.6.1 list ambarndan ö§e çkarma . . . . . . . . . . . . . . . . . . . . . 201 
17.7 list nesnesi de§i³ebilir (mutable) . . . . . . . . . . . . . . . . . . . . . . . 202 
17.7.1 list ambarna yeni ö§eler ekleme . . . . . . . . . . . . . . . . . . . 202 
17.7.2 list yapsndan stack yaps yaratma . . . . . . . . . . . . . . . . . 204 
17.7.3 list yapsndan queue yaps yaratma . . . . . . . . . . . . . . . . . 204 
17.8 list Nesnesi Üzerinde Döngü . . . . . . . . . . . . . . . . . . . . . . . . . . 205 
17.9 list çinde Arama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 
17.10list Ö§elerini Sralama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 
17.11list comprehension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 
17.11.1 Matris ³lemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 
18 tuple (demet) 213 
18.1 tuple (demet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 
18.2 tuple yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 
18.3 ki tuple Ambarn Birle³tirme . . . . . . . . . . . . . . . . . . . . . . . . . 216 
18.4 ndisler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 
18.4.1 Negatif ndisler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 
18.5 tuple ö§elerine eri³im . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 
18.6 Dilimleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 
18.7 String'den tuple yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 
18.8 tuple de§i³mez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 
18.8.1 tuple ambarnda güncelleme . . . . . . . . . . . . . . . . . . . . . . 219 
18.9 tuple'dan list'e dönü³üm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 
18.10list'den tuple'a dönü³üm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 
18.10.1 tuple ambarndan ö§e atma . . . . . . . . . . . . . . . . . . . . . . 221 
18.10.2 tuple ambarna ö§e ekleme . . . . . . . . . . . . . . . . . . . . . . 222 
18.11Ba³lca tuple Fonksiyonlar . . . . . . . . . . . . . . . . . . . . . . . . . . 223 
18.12Tuple Üzerinde For Döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . 227 
18.13tuple Yapsnn Özelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 
19 sets 229 
ÇNDEKLER vii 
19.1 set Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 
19.1.1 Ambara Nesneleri Koyarak set yaratma . . . . . . . . . . . . . . . 230 
19.1.2 list'ten set Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . 230 
19.1.3 String'den set Yaratma . . . . . . . . . . . . . . . . . . . . . . . . 232 
19.1.4 dictionary'den set Yaratma . . . . . . . . . . . . . . . . . . . . . . 232 
19.2 Tekrar Eden Ö§eleri Listeden Silme . . . . . . . . . . . . . . . . . . . . . 233 
19.3 Kümesel ³lemler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 
19.3.1 Bile³im (union) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 
19.3.2 Arakesit (intersection) . . . . . . . . . . . . . . . . . . . . . . . . . 234 
19.3.3 intersection() metodu . . . . . . . . . . . . . . . . . . . . . . . . . 235 
19.3.4 Kümesel Çkarma ³lemi . . . . . . . . . . . . . . . . . . . . . . . . 236 
19.3.5 Simetrik Fark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 
19.4 Sets Yapsnn Ba³lca Metotlar . . . . . . . . . . . . . . . . . . . . . . . . 238 
19.5 frozenset – donuk küme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 
20 bytearray ve bytes Yaplar 247 
20.1 bytearray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 
20.2 bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 
21 dictionary 257 
21.1 dictionary Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 
21.1.1 list Yaps ile dictionary Yapsnn Kar³la³trlmas . . . . . . . . . 258 
21.2 dict Yapsnn Metotlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 
21.3 dict Yaps Üzerinde ³lemler . . . . . . . . . . . . . . . . . . . . . . . . . 262 
21.4 dictionary Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 
21.4.1 dictionary ambarna yeni ö§e ekleme . . . . . . . . . . . . . . . . . 265 
21.4.2 Bir anahtara E³le³en De§eri Bulma . . . . . . . . . . . . . . . . . . 265 
21.4.3 Ambardan Ö§e Atma . . . . . . . . . . . . . . . . . . . . . . . . . 265 
21.4.4 Ambarda Anahtar Arama . . . . . . . . . . . . . . . . . . . . . . . 266 
21.4.5 dictionary Üzerinde Döngü . . . . . . . . . . . . . . . . . . . . . . 266 
22 Fonksiyonlar 269 
22.1 Fonksiyon Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 
22.1.1 Neden Fonksiyon? . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 
22.2 Python'da Fonksiyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 
22.2.1 Fonksiyon Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . 273 
22.3 Python Fonksiyonlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 
22.4 Metot Ça§rma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 
viii ÇNDEKLER 
22.5 Kapsanma Alan (scope), Aduzay . . . . . . . . . . . . . . . . . . . . . . 279 
22.6 Parametre olarak list kullanma . . . . . . . . . . . . . . . . . . . . . . . . 281 
22.7 Çok sayda Parametre kullanma . . . . . . . . . . . . . . . . . . . . . . . . 282 
22.8 Fonksiyon çin Açklama Yazdrma . . . . . . . . . . . . . . . . . . . . . . 284 
22.9 global De§i³ken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 
22.10zip metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 
22.11Hatalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 
22.12__main__ module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 
23 E³lem (mapping) 293 
23.1 Örnek i³lemler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 
24 buer 299 
24.1 Buer Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 
24.2 Buer Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 
24.3 memoryview Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 
24.4 memoryview Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 
24.5 memoryview'in ki Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . 303 
24.6 Yalnz Okunabilir Öznitelikler . . . . . . . . . . . . . . . . . . . . . . . . . 303 
25 Text Dosyalar 307 
25.1 Python'da Dosya ³lemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 
25.2 Dosya Açma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 
25.2.1 Yazlmak Üzere Yeni Dosya Açma . . . . . . . . . . . . . . . . . . 310 
25.2.2 Dosya Pointeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 
25.2.3 Varolan Bir Dosyay Okunmak Üzere Açma . . . . . . . . . . . . . 311 
25.2.4 Dosyalar Dizine Koyma . . . . . . . . . . . . . . . . . . . . . . . . 312 
25.2.5 Sonuna Ek Yapmak çin Dosya Açma . . . . . . . . . . . . . . . . 313 
25.3 Dosyaya Farkl Dillerde Yazma . . . . . . . . . . . . . . . . . . . . . . . . 314 
25.4 Farkl Dillerden Okuma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 
25.5 Dosyay Kapatmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 
25.5.1 Dosyalar Otomatik Olarak Kapatmak . . . . . . . . . . . . . . . . 319 
25.5.2 Farkl Eri³im Amaçlaryla Dosya Açma . . . . . . . . . . . . . . . 321 
25.5.3 Eri³im Kipleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 
25.5.4 Dosya Öznitelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 
25.5.5 Ba³lca Dosya ³lemleri . . . . . . . . . . . . . . . . . . . . . . . . 323 
25.6 Üç Temel Metot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 
25.6.1 close() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 
ÇNDEKLER ix 
25.6.2 write() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 
25.6.3 read() Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 
25.7 Dosya Arama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 
26 Text Olmayan Dosyalar 333 
26.1 Binary Dosyalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 
26.2 Dosyaya Nesne Koyma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 
26.3 Pickle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 
26.4 Dosya Olmayan Akm Nesneleri . . . . . . . . . . . . . . . . . . . . . . . . 340 
26.5 Sk³trlm³ Dosyalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 
26.5.1 gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 
27 Karekterler 343 
27.1 Karekterlerin Kodlanmas . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 
27.2 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 
27.3 UTF (Unicode Transformation Format) . . . . . . . . . . . . . . . . . . . 346 
27.4 ISO–8859 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 
27.5 Python'da Karekterler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 
27.6 Kaç³ (Escape) Karekterleri . . . . . . . . . . . . . . . . . . . . . . . . . . 349 
27.7 Karekter Kodlama Sistemleri . . . . . . . . . . . . . . . . . . . . . . . . . 350 
27.8 UTF–8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 
27.8.1 strict, ignore, . . . . . . . . . . . . . . . . . . . . . . . . . . 352 
27.8.2 decode() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 
28 Veri, Algoritma, Hata 357 
28.1 Veri ve Veri Yaplar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 
28.2 Algoritma ve Fonksiyon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 
28.2.1 Veri Yaplar Üzerinde ³lemler . . . . . . . . . . . . . . . . . . . . 358 
28.2.2 Veri Yaps Olu³turma . . . . . . . . . . . . . . . . . . . . . . . . . 359 
28.3 Hatalar! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 
29 Snf (class) 361 
29.1 Nesne Yönelimli Programlama . . . . . . . . . . . . . . . . . . . . . . . . 361 
29.2 Snf ve Nesne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 
29.2.1 Snf Bildirimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 
29.3 Snftan Nesne Üretme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 
29.3.1 Ne, Nasl? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 
29.3.2 Özniteliklere Eri³im . . . . . . . . . . . . . . . . . . . . . . . . . . 371 
x ÇNDEKLER 
29.3.3 Metot Ça§rma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 
29.4 Aynlk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 
29.4.1 S§ E³itlik, Derin E³itlik . . . . . . . . . . . . . . . . . . . . . . . . 377 
29.5 Altsnf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 
29.6 Soyut Snf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 
29.7 Çokbiçemlilik – polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . 382 
29.8 Snf ve Nesne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 
29.8.1 Encapsulation – data hiding . . . . . . . . . . . . . . . . . . . . . . 388 
29.8.2 init ve self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 
29.8.3 Nesneler De§i³ebilir . . . . . . . . . . . . . . . . . . . . . . . . . . 390 
29.8.4 Kopyalama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 
29.8.5 Terimler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 
30 Python Hakknda Bilgi 395 
30.1 Python'u Kim yazd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 
30.2 Python'un Özelikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 
31 Python Kurulumu 399 
31.1 Python Nasl Kurulur? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 
31.2 Genel Yöntem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 
31.3 Dizin Seçme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 
31.4 WinPython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 
31.5 Yorumlayc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 
31.6 Linux'a Python Kurulumu . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 
31.7 Hazr Kurulu Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 
31.8 Depodan Kurulum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 
31.9 Pip Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 
32 Python Programlarn Yürütme 407 
32.0.1 Kaynak Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 
32.0.2 Yürütülebilir Program . . . . . . . . . . . . . . . . . . . . . . . . . 408 
32.0.3 Program Evreleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 
32.1 Programlama Dilleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 
32.1.1 Makine dili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 
32.1.2 Assembly Dili ve Assembler . . . . . . . . . . . . . . . . . . . . . . 409 
32.2 Üst Düzeyli Diller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 
32.3 Derleyiciler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 
32.4 Sanal Makineler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 
ÇNDEKLER xi 
32.5 Yorumlayclar (interpreter) . . . . . . . . . . . . . . . . . . . . . . . . . . 412 
32.6 Python Nasl Çal³r? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 
32.7 Python Yorumlaycs (interpreter) . . . . . . . . . . . . . . . . . . . . . . 414 
32.8 Python Programn Yürütme . . . . . . . . . . . . . . . . . . . . . . . . . 414 
32.9 Python Sözdizimi (syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 
32.10PATH Ortam De§i³keni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 
32.11Etkile³imli (interactive) Python . . . . . . . . . . . . . . . . . . . . . . . . 417 
32.12IDLEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 
32.13Unix–Linux Sistemlerde Python . . . . . . . . . . . . . . . . . . . . . . . . 418 
33 Module Nedir 419 
33.1 Etkin Dizin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 
33.2 Adlar ve Kapsanma Alanlar . . . . . . . . . . . . . . . . . . . . . . . . . 421 
33.3 dir() fonksiyonu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 
33.4 python'da Paketler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 
34 Matematik Modülü 423 
35 Karma³k saylar 431 
35.1 Karma³k saylar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 
35.2 Karma³k Saylarla ³lemler . . . . . . . . . . . . . . . . . . . . . . . . . . 434 
35.3 Karma³k Saynn Uzunlu§u ve Argümenti . . . . . . . . . . . . . . . . . . 435 
36 os Modülü 439 
36.1 ³letim Sistemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 
36.2 Dosya Sistemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 
36.3 Windows'ta Python Dosyalar . . . . . . . . . . . . . . . . . . . . . . . . . 442 
36.3.1 os.path modülü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 
36.3.2 Dizin Yaratma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446