# 2. Python Yorumlayıcısını Kullanma

## 2.1. Yorumlayıcıyı Çağırma

Python yorumlayıcısı genellikle mevcut olduğu makinelerde `/usr/local/bin/python3.10` ‘a yüklenir; Unix kabuğunuzun arama yoluna (path) `/usr/local/bin` yazmak, komutu yazarak başlatmayı mümkün kılar:

    python3.11

kabuğa. [1] Yorumlayıcının bulunduğu dizinin seçimi bir yükleme seçeneği olduğundan, Python dizini başka bir yerde de olabilir; yerel Python gurunuza veya sistem yöneticinize danışın. (Örneğin, `/usr/local/python` popüler bir alternatif konumdur.)

Python’ı Microsoft Store yüklediğiniz Windows makinelerinde `python3.10` komutu kullanılabilir. py.exe launcher başlatıcısı yüklüyse, `py` komutunu kullanabilirsiniz. Python’u başlatmanın diğer yolları için Excursus: Setting environment variables ‘a bakın.

Dosya sonu karakteri (Unix’te ``Control`-`D``, Windows’ta ``Control`-`Z``) yazılması, yorumlayıcının sıfır durumuyla (zero exit status) sonlanmasına neden olur. Bu işe yaramazsa, aşağıdaki komutu yazarak yorumlayıcıdan çıkabilirsiniz: `quit()`.

Yorumlayıcının satır düzenleme özellikleri arasında etkileşimli düzenleme, geçmiş değiştirme ve GNU Readline kütüphanesini destekleyen sistemlerde kod tamamlama bulunur. Komut satırı düzenlemenin desteklenip desteklenmediğini görmek için belki de en hızlı denetim, elde ettiğiniz ilk Python istemine ``Control`-`P`` yazmaktır. Bip sesi çıkarsa komut satırı düzenlemeniz vardır; Tuşların tanıtımı için Etkileşimli Girdi Düzenleme ve Geçmiş İkame ‘e göz atabilirsiniz. Hiçbir şey görünmüyorsa veya `^P` yankılanıyorsa, komut satırı düzenlemesi kullanılamaz; yalnızca geçerli satırdaki karakterleri kaldırmak için geri alabiliyorsunuz.

Yorumlayıcı bir şekilde Unix kabuğu gibi çalışır: bir tty aygıtına bağlı standart girdi ile çağrıldığında, komutları etkileşimli olarak okur ve yürütür; bir dosya adı argümanıyla veya standart girdi olarak bir dosyayla çağrıldığında, o dosyadan bir komut dosyası okur ve yürütür.

Yorumlayıcıyı başlatmanın ikinci bir yolu, kabuğun `-c` seçeneğine benzer şekilde command içindeki deyimleri çalıştıran `python -c command [arg] ...` komutudur. Python deyimleri genellikle boşluk veya kabuğa özel başka karakterler içerdiğinden, genellikle command ifadesinin tamamının alıntılanması tavsiye edilir.

Bazı Python modülleri komut dosyası olarak da yararlıdır. Bunlar, eğer tam adını komut satırına yazarsanız modül için kaynak dosyası `python -m *modül* [argüman] ...` kullanılarak çağrılabilir.

Bir komut dosyası kullanıldığında, bazen komut dosyasını çalıştırabilmek ve daha sonra etkileşimli moda girebilmek yararlıdır. Bu komut dosyasından önce `-i` geçirilerek yapılabilir.

Tüm komut satırı seçenekleri Command line and environment bölümünde açıklanmıştır.

### 2.1.1. Değişken Geçirme

Yorumlayıcı tarafından bilindiğinde, komut dosyası adı ve bundan sonraki ek argüman dizelerin listesine dönüştürülür ve `sys` modülündeki `argv` değişkenine atanır. Bu listeye `import sys` öğesini yürüterek erişebilirsiniz. Listenin uzunluğu en az birdir; komut dosyası ve argüman verilmediğinde `sys.argv[0]` boş bir dizedir. Komut dosyası adı `'-'` (standart giriş anlamına gelir) olarak verildiğinde, `sys.argv[0]` `'-'` olarak ayarlanır. `-c` komut kullanıldığında, `sys.argv[0]`, `-c` olarak ayarlanır. `-m` modül kullanıldığında, `sys.argv[0]` bulunan modülün tam adına ayarlanır. `-c` komut veya `-m` modül ‘den sonra bulunan seçenekler, Python yorumlayıcısının seçenek işlemesi tarafından tüketilmez, ancak komut veya modülün işlemesi için `sys.argv` içinde bırakılır.

### 2.1.2. Etkileşimli Mod

Komutlar bir tty’den okunduğunda, yorumlayıcının etkileşimli modda olduğu söylenir. Bu modda, genellikle üç büyük işaret olan öncelikli bilgi istemi ile bir sonraki komutu ister (`>>>`); devam satırları için ikincil istem ile sorar, varsayılan olarak üç nokta (`...`). Yorumlayıcı, ilk istemi yazdırmadan önce sürüm numarasını ve telif hakkı bildirimini belirten bir karşılama iletisi yazdırır:

    $ python3.11
    Python 3.11 (default, April 4 2021, 09:25:04)
    [GCC 10.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

Çok satırlı bir yapıya girilirken devamlılık satırları gereklidir. Örnek olarak, `if` ifadesine bir göz atın:

    >>> the_world_is_flat = True
    >>> if the_world_is_flat:
    ...     print("Be careful not to fall off!")
    ...
    Be careful not to fall off!

Etkileşimli mod hakkında daha fazlası için bkz. Etkileşimli Mod.

## 2.2. Yorumlayıcı ve Çevresi

### 2.2.1. Kaynak Kodu Şeması

Varsayılan olarak, Python kaynak dosyaları UTF-8’de kodlanmış olarak kabul edilir. Bu kodlamada, dünyadaki çoğu dilin karakterleri dize değişmezlerinde, tanımlayıcılarda ve yorumlarda aynı anda kullanılabilir — standart kütüphane tanımlayıcılar için yalnızca ASCII karakterleri kullansa da, herhangi bir taşınabilir kodun izlemesi gereken bir kuraldır. Tüm bu karakterleri düzgün görüntülemek için, düzenleyicinizin dosyanın UTF-8 olduğunu tanıması ve dosyadaki tüm karakterleri destekleyen bir yazı tipi kullanması gerekir.

Varsayılan dil şeması dışında bir şema bildirmek için, dosyanın ilk satırı olarak özel bir yorum satırı eklenmelidir. Sözdizimi aşağıdaki gibidir:

    # -*- coding: encoding -*-

burada kodlama, Python tarafından desteklenen geçerli `codec` bileşenlerinden biridir.

Örneğin, Windows-1252 şemasının kullanılacağını bildirmek için, kaynak kod dosyanızın ilk satırı şu olmalıdır:

    # -*- coding: cp1252 -*-

İlk satır kuralının bir istisnası, kaynak kodun UNIX “shebang” line satırı ile başlamasıdır. Bu durumda, şema bildirimi dosyanın ikinci satırı olarak eklenmelidir. Örneğin:

    #!/usr/bin/env python3
    # -*- coding: cp1252 -*-

Dipnotlar

[1]

Unix’te, Python 3.x yorumlayıcısı varsayılan olarak `python` adlı yürütülebilir dosyayla yüklenmez, böylece aynı anda yüklenen bir Python 2.x yürütülebilir dosyasıyla çakışmaz.