1. İştahınızı Kabartma
**********************

Bilgisayarlarda çok fazla iş yaparsanız, sonunda otomatikleştirmek
istediğiniz bazı görevler olduğunu bulursunuz.  Örneğin, çok sayıda
metin dosyası üzerinde arama ve değiştirme gerçekleştirmek veya bir
grup fotoğraf dosyasını karmaşık bir şekilde yeniden adlandırmak ve
yeniden düzenlemek isteyebilirsiniz. Belki küçük bir özel veritabanı,
özel bir GUI uygulaması veya basit bir oyun yazmak istersiniz.

Profesyonel bir yazılım geliştiricisiyseniz, birçok C/C++/Java
kütüphanesiyle çalışmanız gerekebilir, ancak normal yazma/derleme/test
etme/yeniden derleme döngüsünü çok yavaş buluyorsunuz.  Belki de böyle
bir kütüphane için bir test paketi yazıyorsunuz ve test kodunu yazmayı
sıkıcı bir görev olarak buluyorsunuz.  Veya eklenti dili
kullanabilecek bir program yazdınız ve uygulamanız için yepyeni bir
dil tasarlamak ve uygulamak istemiyorsunuz.

Python tam size göre bir dil.

Bu görevlerden bazıları için bir Unix kabuk komut dosyası veya Windows
toplu iş dosyaları yazabilirsiniz, ancak kabuk komut dosyaları,
dosyaların etrafında hareket etmek ve metin verilerini değiştirmekte
en iyisi olmakla beraber GUI uygulamaları veya oyun yapımı için pek
öyle olmayabilir. Bir C/C++/Java programı yazabilirsiniz, ancak taslak
programını almak bile çok zaman alabilir.  Python'un kullanımı daha
kolaydır, Windows, macOS ve Unix işletim sistemlerinde kullanılabilir
ve işi daha hızlı bir şekilde halletmenize yardımcı olur.

Python kolay olmakla birlikte, kabuk komut dosyalarının veya toplu iş
dosyalarının sunabileceğinden çok daha fazla yapı ve büyük programlar
için destek sunan gerçek bir programlama dilidir.  Öte yandan, Python
C'den çok daha fazla hata denetimi sunar ve *çok üst düzey bir dil
(very-high-level language)* olarak, esnek diziler ve sözlükler gibi
yerleşik üst düzey veri türlerine sahiptir.  Python daha genel veri
türleri nedeniyle, Awk ve hatta Perl'den çok daha büyük bir kullanım
alanına uygulanabilir, ancak Python'da birçok şey en az bu dillerdeki
kadar kolaydır.

Python, programınızı diğer Python programlarında yeniden
kullanılabilecek modüllere bölmenizi sağlar. Python, programlayı
öğrenmeye başlarken veya programlarınızda temel olarak
kullanabileceğiniz geniş bir standart modül koleksiyonuyla birlikte
gelir.  Bu modüllerden bazıları dosya giriş/çıkışı (I/O), sistem
çağrıları, soketler ve hatta Tk gibi GUI araç setlerini içerir.

Python, derleme ve bağlama gerekmediğinden program geliştirme
sırasında size önemli ölçüde zaman kazandırabilecek yorumlanmış bir
dildir.  Yorumlayıcı etkileşimli olarak kullanılabilir, bu da dilin
özellikleriyle deneme yapmayı, atma programları yazmayı veya aşağıdan
yukarıya program geliştirme sırasında işlevleri test etmeyi
kolaylaştırır. Ayrıca kullanışlı bir masa üstühesap makinesidir.

Python, programların kompakt ve okunabilir bir şekilde yazılmasını
sağlar.  Python'da yazılan programlar genellikle çeşitli nedenlerden
dolayı aynı görevi gören C, C++ veya Java programlarına göre çok daha
kısadır:

* üst düzey veri türleri karmaşık işlemleri tek bir deyimde ifade
  etmenizi sağlar;

* ifade gruplandırması, başlangıç ve bitişe koyulan köşeli ayraçlar
  yerine girintileme kullanılarak yapılır;

* değişken veya bağımsız değişken bildirimleri gerekli değildir.

Python *genişletilebilir*: C'de programlamayı biliyorsanız, kritik
işlemleri maksimum hızda gerçekleştirmek veya Python programlarını
yalnızca ikili biçimde (satıcıya özgü grafik kitaplığı gibi)
kullanılabilen kitaplıklara bağlamak için yorumlayıcıya yeni bir
yerleşik işlev veya modül eklemek kolaydır. Gerçekten bağlandıktan
sonra, Python yorumlayıcısını C ile yazılmış bir uygulamaya
bağlayabilir ve bu uygulama için bir uzantı veya komut dili olarak
kullanabilirsiniz.

Bu arada, dil adını BBC şovu "Monty Python'un Uçan Sirki"nden almıştır
ve sürüngenlerle hiçbir ilgisi yoktur.  Belgelerde Monty Python
skeçlerine atıfta bulunmaya sadece izin verilmez, aynı zamanda teşvik
edilir!

Artık hepiniz Python için heyecanlı olduğunuza göre, biraz daha
ayrıntılı olarak incelemek isteyeceksiniz.  Bir dili öğrenmenin en iyi
yolu kullanmak olduğundan, öğretici sizi okurken Python
yorumlayıcısıyla oynamaya davet eder.

Bir sonraki bölümde, yorumlayıcıyı kullanma mekaniği açıklanmıştır.
Bu oldukça sıradan bir bilgidir, ancak daha sonra gösterilen örnekleri
denemek için gereklidir.

Öğreticinin geri kalanı, basit ifadeler, ifadeler ve veri türlerinden
başlayarak, işlevler ve modüller aracılığıyla ve son olarak istisnalar
ve kullanıcı tanımlı sınıflar gibi gelişmiş kavramlara dokunarak
örnekler aracılığıyla Python dilinin ve sisteminin çeşitli
özelliklerini tanıtır.
