Kurs
C++ veya Java gibi yürütmeden önce makine koduna çevrilmesi gereken derlenmiş dillerin aksine, Python yorumlanır ve yönergeleri doğrudan çalıştırır. Bu da REPL ortamını, ister küçük parçaları test edin, ister yeni kavramları keşfedin ya da satır satır hata ayıklayın, denemeler için doğal bir seçenek haline getirir. Her Python kurulumuyla birlikte gelmesi, ne zaman isterseniz hazır olduğu anlamına gelir; bu da önemli bir avantajdır.
Bu eğitimde, örneklerle Python REPL ortamını nasıl kullanacağınızı gösterecek, özelliklerini ve iş akışınızı iyileştirecek alternatif REPL’leri keşfedeceğim. Python’a yeni başlıyorsanız, veri türleri, listeler, temel fonksiyonlar ve paketler gibi becerileri kapsayan Introduction to Python kursumuzu almanızı öneririm.
Python REPL Nedir?
REPL oturumu Read-Eval-Print Loop ifadesinin kısaltmasıdır ve dört temel aşamasını açıklar:
- Read: REPL ortamı, bir satır kod ya da çok satırlı bir ifade olabilen kullanıcı girdisini okur.
- Evaluate: Kodu değerlendirir, ifadeyi ya da deyimi yürütür ve sonucunu hesaplar.
- Print: Bu işlev değerlendirme sonucunu konsola yazdırır. Atama deyimi gibi çıktı üretmeyen kodlar için bir şey yazdırmaz.
- Loop: REPL başa döner ve bir sonraki girdi satırı için hazır hale gelir.
Bu aşamalar kesintisiz birlikte çalışır; böylece kodu yazıp anında çıktısını görebileceğiniz etkileşimli bir ortam oluşur. Python’un REPL’i yeni ifadeler için birincil istem >>> ve döngüler ya da fonksiyon tanımları içindeki devam satırları gibi durumlar için ikincil istem ... gösterir. Aşağıdaki bölümlerde örneklerle bu istemlerin nasıl çalıştığını inceleyeceğiz.
Bu ortamı tanımlamak için "Etkileşimli kabuk", "yorumlayıcı oturumu" ve "REPL" terimleri sıklıkla birbirinin yerine kullanılır.
Neden Python REPL Kullanın
Python REPL’i aşağıdaki görevler için kullanabilirsiniz:
Kod parçacıklarını ve kütüphane fonksiyonlarını hızlıca test edin: Betik dosyası oluşturmadan küçük kod parçalarını anında deneyebilirsiniz.
>>> import math
>>> math.sqrt(16)
4.0
Sözdizimini keşfedin ve fikirlerle deney yapın: REPL ortamını kişisel kum havuzunuz olarak düşünün. Farklı veri türleri, operatörler ve kontrol akışı yapıları gibi yeni şeyleri, daha büyük bir programı bozma riski olmadan nasıl davrandıklarını görmek için deneyebilirsiniz.
>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]
Hata ayıklayın ve değişkenleri inceleyin: Değişkenlerinizin değerlerini ve durumlarını adım adım kontrol etmek için REPL oturumunu kullanabilirsiniz; bu da sorunları anlamayı ve gidermeyi çok daha kolay hale getirir.
>>> x = 42
>>> type(x)
<class 'int'>
>>> x / 7
6.0
Hesap makinesi ya da öğrenme aracı olarak kullanın: Anında sonuçlar vermesi, hesaplamalar yapmak veya Python’un temellerini öğrenmek için faydalıdır.
>>> 10 * (5 + 2)
70
Bir REPL Oturumunu Başlatma ve Çıkma
Bir Python REPL oturumu başlatmak için terminalinizi veya komut istemini açın. Ardından python veya python3 yazıp Enter’a basın. Bu işlem etkileşimli kabuğu başlatır.
Bir betiği çalıştırdıktan sonra -i bayrağını kullanarak da etkileşimli bir oturum başlatabilirsiniz. Örneğin, python -i calc_tax.py komutu calc_tax.py dosyasını çalıştırır ve ardından betiğin değişkenleri hâlâ bellekte yüklüyken sizi REPL ortamına taşır.
REPL’den çıkmak için birkaç komuttan birini kullanabilirsiniz:
-
quit()veyaexit()yazıp ardından Enter tuşuna basın. -
Unix/Linux/macOS’ta Ctrl+D tuşlarına basın.
-
Windows’ta Ctrl+Z tuşlarına basın ve ardından Enter tuşuna basın.
REPL Ortamında Kod Çalıştırma
Python’un REPL oturumlarında, karmaşıklığına bağlı olarak kodu farklı şekillerde çalıştırabilirsiniz. REPL’de çalıştırabileceğiniz aşağıdaki kod türlerine bakalım.
Basit deyimler ve ifadeler
REPL ortamı, basit ifadeleri ve deyimleri anında değerlendirebilir. Örneğin, aritmetik işlemler yapabilir, değişken atayabilir ve Boole ifadelerini değerlendirebilirsiniz. Bir ifadenin sonucu otomatik olarak yazdırılır.
>>> 5 + 4
9
>>> name = "Allan"
>>> name
'Allan'
>>> 10 > 5
TrueBir deyim (örneğin değişken ataması) çıktı üretmiyorsa, REPL yorumlayıcısı bir şey yazdırmaz. Hata yaparsanız, REPL hata yükselterek anında geri bildirim sağlar.
Bileşik deyimler
Python REPL ortamı, if deyimleri ve for döngüleri gibi çok satırlı bileşik deyimleri de işler. İki nokta (:) ile biten bir satırı yazıp Enter’a bastığınızda otomatik olarak ikincil isteme (...) geçer; bu da girintili kod bloğunu beklediği anlamına gelir.
Kodunuzu manuel olarak girintilemeniz gerektiğini unutmayın; REPL ortamı otomatik girinti yapmaz. Bileşik deyimin bittiğini belirtmek için boş bir satırda Enter tuşuna basın.
Açık ve örtük satır devamları
Python REPL oturumunda satır devamlarını kullanarak çok satırlı deyimler de yazabilirsiniz. Açık satır devamı, ifadenin bir sonraki satırda devam ettiğini belirtmek için satırın sonunda ters bölü (\) kullanır.
Örtük satır devamları, kod parantezler (), köşeli parantezler [] veya süslü parantezler {} içine alındığında otomatik olarak gerçekleşir.
Yazdırma ve değerlendirme
REPL’in otomatik yazdırma özelliği yalnızca bir dönüş değeri olan ifadelerde çalışır. Örneğin, bir listeniz varsa ve temp.append(45) ile bir öğe eklerseniz, herhangi bir çıktı üretmez. Yeni listeyi görmek için bir sonraki satırda liste değişkenini açıkça değerlendirmeniz gerekir. None döndüren fonksiyonlar için çıktıyı görmek adına print() kullanmanız gerekir.
Faydalı REPL Özellikleri
Python REPL ortamında, kullanımı ve öğrenmeyi daha verimli kılan çeşitli yerleşik özellikler vardır. Faydalı bulduğum bazı özelliklerden bahsedeceğim.
Özel değişken _
Alt çizgi (_), REPL oturumunda son ifadenin sonucunu saklayan özel bir değişkendir. Sonuçları yeniden yazmadan tekrar kullanmak istediğinizde işinize yarar.
Aşağıdaki örnekte _, 6*5 ifadesinden elde edilen 30 değerini saklar.
İçgözlem araçları
Python, nesneleri ve ortamınızı etkileşimli olarak keşfetmek için çeşitli yerleşik fonksiyonlar sunar. Aşağıdaki tablo, her bir fonksiyonun kullanımını örneklerle özetler.
|
Araç |
Amaç |
Örnek |
|
|
Geçerli yerel kapsamda veya belirtilen bir nesne üzerinde tüm adların (öznitelikler ve yöntemler) bir listesini döndürür. |
|
|
|
Bir nesne, modül veya fonksiyon için yerleşik yardım sistemini başlatır ve dokümantasyonunu (docstring’ler) gösterir. |
|
|
|
Bir nesnenin |
|
|
|
Geçerli yerel sembol tablosunu (geçerli kapsamda yer alan değişkenler) temsil eden bir sözlük döndürür. |
|
|
|
Geçerli genel sembol tablosunu (her yerden erişilebilen değişkenler) temsil eden bir sözlük döndürür. |
|
Kod geçmişi ve sekme ile tamamlama
REPL, aşağıdaki geçmiş ve otomatik tamamlama özellikleriyle kodlamayı hızlandırır:
- Kod geçmişi: Yukarı ve Aşağı Ok tuşlarıyla daha önce girilen komutlar arasında gezinebilirsiniz. Bu sayede geçmiş satırları hızla yeniden çalıştırabilir, değiştirebilir veya düzeltebilirsiniz.
- Sekme ile tamamlama: Değişken adlarını, modül adlarını ve nesne özniteliklerini tamamlamaya yardımcı olur. Örneğin,
imporyazıp Sekme’ye basmakimportolarak tamamlar;str..yazıp ardından Sekme’ye basmak ise string yöntemlerini listeler.
Klavye kısayolları
Aşağıdakiler, REPL’de gezinmeyi daha verimli hale getiren bazı yaygın klavye kısayollarıdır.
|
Kısayol |
Eylem |
|
Ctrl+C |
O anda çalışan komutu (örneğin uzun bir döngüyü) keser ve bir |
|
Ctrl+D (Unix) |
REPL’den çık ( |
|
Ctrl+Z + Enter (Win) |
REPL’den çık |
|
Ctrl+L |
Ekranı temizler ( |
|
Yukarı / Aşağı Ok |
Komut geçmişinde gezin |
|
Ctrl+A |
İmleci satırın başına taşı |
|
Ctrl+E |
İmleci satırın sonuna taşı |
|
Ctrl+K |
İmleçten satır sonuna kadar sil |
|
Ctrl+U |
İmleçten satır başına kadar sil |
REPL’i Özelleştirme
Standart Python REPL, iş akışınıza ve tercihlerinize uyacak şekilde özelleştirilebilir.
Başlangıç dosyası
PYTHONSTARTUP ortam değişkenini, REPL her başladığında otomatik olarak çalışan bir Python betiğinin yoluna ayarlayın. Bu betik sık kullanılan modülleri önceden içe aktarabilir, fonksiyonlar tanımlayabilir veya istem dizelerini değiştirebilir.
Örneğin, aşağıdaki içerikle ~/.pystartup adlı bir dosya oluşturun:
import sys, os, math, random
print("Custom REPL ready. Pre-imported: sys, os, math, random")
# Change the prompt strings
import sys
sys.ps1 = ">>> "
sys.ps2 = "... "
Windows kullanıyorsanız, aşağıdaki komutla ortamı ayarlayabilirsiniz:
setx PYTHONSTARTUP "C:\path\to\pystartup.py"
rich ile zengin çıktı
rich kütüphanesini kullanarak REPL’deki çıktıyı zenginleştirebilir ve renklendirebilirsiniz. Önce pip ile rich modülünü yüklemeniz gerekir.
pip install rich
Ardından Python REPL oturumlarınızda içe aktararak rich’i etkinleştirin ve kullanın. Aşağıdaki örnekte, farklı yazı tipi renklerinde kelimeler yazdırmak için kütüphaneyi kullandım.

Denemek İçin Örnek REPL Komutları
Gördüğünüz gibi, Python’un REPL oturumu kullanımı kolaydır. Aşağıdaki komutları deneyerek becerilerinizi pratik edin
|
Komut |
Amaç |
Çıktı/Açıklama |
|
|
İçgözlem: Yerleşik |
|
|
|
Dokümantasyon: Liste nesnesinin append yöntemine ait docstring’i görüntüler ve nasıl çalıştığını açıklar. |
|
|
|
Modül içe aktarma: Standart |
Çıktı yok (ancak modül artık kullanılabilir). |
|
|
Hesaplama: π değerini alın. |
|
|
|
Hesaplama: sin(π/2) hesaplayın. |
|
|
|
Hızlı Test: Listeden rastgele bir öğe seçin. |
|
|
|
Hata Yönetimi/Çıkış: Sonsuz bir döngü başlatın, ardından kesmek ve çıkmak için Ctrl+C’ye basın. |
|
Standart REPL Ortamının Sınırlamaları
Standart Python REPL ortamı hızlı işler için harika olsa da modern bir IDE ile karşılaştırıldığında çoğu zaman sınırlı hissettirebilir. Kısa sürede aşağıdaki gibi bazı eksik özellikleri fark edeceksiniz:
- Sözdizimi renklendirme yok: Tüm kodunuz düz metin olarak görünür. Bu da anahtar kelimeleri, stringleri ve yorumları görsel olarak hızlıca ayırt etmeyi zorlaştırır ve dikkatli okumayı gerektirir.
- Asgari otomatik girintileme: Devam istemini (
...) yönetmesine rağmen, if ve for blokları gibi bileşik deyimler için doğru girintiyi manuel olarak girmeniz gerekir. - Temel kod tamamlama: Yerleşik sekme ile tamamlama işlevseldir ancak gelişmiş kabuklarda bulunan bağlama duyarlı öneriler, satır içi dokümantasyon veya bulanık eşleştirme sunmaz.
- Zayıf çok satırlı düzenleme: Karmaşık, çok satırlı kod bloklarını düzenlemek zahmetlidir.
- Bir blok gönderildikten sonra, geçmişten kolayca düzenlenemez veya geri çağrılamaz.
Alternatif REPL’ler
Standart yorumlayıcının yukarıdaki sınırlamalarını aşmak için, Python’un etkileşimli modelini temel alan ve üretkenliği ile öğrenmeyi artıran ek özellikler sunan çeşitli gelişmiş REPL’ler ve ortamlar mevcuttur. İhtiyaçlarınıza uygun olanı bulmak için aşağıdakilerden herhangi birini denemenizi öneririm.
- IDLE: Python ile birlikte gelen basit, GUI tabanlı bir Python ortamı. Sözdizimi renklendirme, tümleşik bir editör ve hata ayıklayıcı sunar; bu da yeni başlayanlar için kullanıcı dostudur.
- IPython: Zengin sekme ile tamamlama, sözdizimi renklendirme, sihirli komutlar (başında % olan özel komutlar), kapsamlı geçmiş ve kabuk komutlarına kolay erişim sunan güçlü bir REPL. Veri bilimi ve bilimsel hesaplamada yaygın olarak kullanılır.
- bpython: Satır içi sözdizimi renklendirme, otomatik öneriler ve dokümantasyona hızlı erişim sunan terminal tabanlı bir REPL’dir. Hafiftir ancak varsayılan REPL’e göre önemli ölçüde kullanılabilirlik sağlar.
- ptpython: Deneyimli kullanıcılar için tasarlanmış, gerçek çok satırlı düzenleme, sağlam sözdizimi renklendirme ve hatta fare desteği gibi özellikler sunan gelişmiş bir REPL’dir; terminalde daha fazla kontrol sağlar.
- Çevrimiçi REPL’ler: Tarayıcı tabanlı ortamlar olan Python.org’un etkileşimli kabuğu ve Python Morsels REPL, hızlı testler, kod paylaşımı veya yolda pratik yapmak için idealdir.
Sonuç
Python REPL oturumu, kodla denemeler yapmanız için hızlı ve etkileşimli bir ortam sunar; bu da test etme, öğrenme ve fikirleri keşfetme için paha biçilmezdir. Yerleşik özelliklerinde ustalaşmak, günlük programlama görevleri için güçlü bir araç kazandırır. Daha karmaşık iş akışları veya gelişmiş kullanılabilirlik için, gelişmiş REPL alternatiflerini denemek etkileşimli kodlama deneyimini daha da iyileştirebilir.
Python’u kapsamlı bir şekilde anlamak için Python Data Fundamentals ve Python Programming Fundamentals yetkinlik yollarımızdan daha fazlasını öğrenebilirsiniz. Ayrıca, Yeni Başlayanlar için Python Cheat Sheet, Python’da bir listeyi nasıl böleceğinize göz atmak istediğinizde işinize yarar.
SSS
Python REPL’i nasıl başlatırım?
Terminalinizi açın ve sisteminize bağlı olarak python veya python3 yazın.
REPL’den nasıl çıkarım?
quit() veya exit() yazın ya da Unix’te Ctrl+D, Windows’ta Ctrl+Z + Enter kullanın.
REPL ile bir betik çalıştırmak arasındaki fark nedir?
REPL kodu etkileşimli olarak satır satır çalıştırır; bir betik ise bir dosyadaki tüm kodu bir kerede yürütür.
REPL’deki _ değişkeni nedir?
_, son değerlendirilen ifadenin sonucunu tutar; böylece hızlıca tekrar kullanabilirsiniz.
>>> ve ... istemleri nedir?
>>> birincil istemdir, ... ise çok satırlı girişler için ikincil istemdir.

