# 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.

You could write a Unix shell script or Windows batch files for some of these tasks, but shell scripts are best at moving around files and changing text data, not well-suited for GUI applications or games. You could write a C/C++/Java program, but it can take a lot of development time to get even a first-draft program. Python is simpler to use, available on Windows, Mac OS X, and Unix operating systems, and will help you get the job done more quickly.

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.