İÇİNDEKİLER
çindekiler
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 ÇNDEKLER
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
ÇNDEKLER 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 ÇNDEKLER
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
ÇNDEKLER 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 ÇNDEKLER
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
ÇNDEKLER 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 ÇNDEKLER
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
ÇNDEKLER 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 ÇNDEKLER
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
ÇNDEKLER 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 |