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

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.

A second way of starting the interpreter is "python -c command [arg]
...", which executes the statement(s) in *command*, analogous to the
shell's "-c" option.  Since Python statements often contain spaces or
other characters that are special to the shell, it is usually advised
to quote *command* in its entirety.

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.10
   Python 3.10 (default, June 4 2019, 09:25:04)
   [GCC 4.8.2] 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.
