İçeriğe geç

Çalıştırma ve Hata Ayıklama

Ctrl+R ya da araç çubuğundaki yeşil ▶ düğmesi kodunu çalıştırır; kırmızı ⏹ düğmesi durdurur.

  1. Kod önce denetlenir; sözdizimi hatası varsa durum çubuğunda Satır N: ... biçiminde gösterilir.
  2. TürKod kodu Python’a çevrilir.
  3. Program, TürKod ile birlikte gelen kendi Python’u ile çalışır; bilgisayarına ayrıca Python kurman gerekmez.

girdi_al() bir soru sorduğunda terminalin en altındaki kutuda Programa girdi… (Ctrl+C: durdur) yazar. Cevabını bu kutuya yazıp Enter’a basarsın.

Program girdi bekliyor; terminalin altındaki kutu 'Programa girdi… (Ctrl+C: durdur)' gösteriyor
  • Hiçbir metin seçili değilken terminalde Ctrl+C’ye basmak çalışan programı durdurur.
  • ↑ / ↓ daha önce yazdıklarını geri getirir.
Sekme durumu Program nerede çalışır?
Kaydedilmiş dosya Dosyanın kendi klasöründe. Yanındaki dosyaları adıyla açabilir (aç("notlar.txt")), aynı klasördeki başka .trpy dosyalarını içe_aktar ile kullanabilirsin.
Kaydedilmemiş sekme Her çalıştırmada geçici bir klasörde. Kalıcı dosya okuyup yazmak için önce dosyayı kaydet ya da tam yol yaz.

Programın komut satırı argümanı bekliyorsa (sys.argv), Çalıştır → Çalıştırma Argümanları… ile her sekme için ayrı argüman verebilirsin. Argümanları boşlukla ayır; boşluk içeren argümanı tırnak içine al. Argümanlar sekmeyle birlikte kaydedilir.

Çalıştırma Argümanları penceresi
  • Doğru, Yanlış ve Hiçlik değerleri ekrana Türkçe yazılır (listelerin içinde de).
  • pygame, Ursina, Panda3D gibi kütüphanelerin terminale yazdığı İngilizce bilgi/uyarı satırları da Türkçeleştirilir (warning → Uyarı, error → Hata). Senin yazdır ile yazdıkların olduğu gibi kalır.
  • Hatalar Türkçe adı, satır numarası ve açıklamasıyla gösterilir:
adet = 0 iken 60 / adet hesaplanınca terminalde Sıfıra Bölme Hatası, Satır Numarası 3, bir sayı 0'a bölünemez yazıyor
Bir sayıyı 0'a bölmeye çalışınca
  • Yanlış yazılmış bir ad varsa TürKod doğru olanı önerir:
yazdır(notlarr) çalıştırılınca: notlarr adında bir değişken/fonksiyon tanımlı değil! Bunu mu demek istediniz: notlar?
notlar yerine notlarr yazınca: Bunu mu demek istediniz: 'notlar'?
  • Program bir hata koduyla biterse [Program N koduyla sonlandı], sen durdurursan [Durduruldu] yazar.
Türkçe ad Python karşılığı Genellikle neden?
Sözdizimi (Yazım) Hatası SyntaxError Eksik :, parantez ya da tırnak
Girinti Hatası IndentationError Satır başındaki boşluklar hatalı
Tanımsız İsim Hatası NameError Yanlış yazılmış ya da tanımlanmamış ad
Veri Tipi Hatası TypeError Metinle sayıyı toplamak gibi uyumsuz işlem
Geçersiz Değer Hatası ValueError tamsayı("abc") gibi çevrilemeyen değer
Sıfıra Bölme Hatası ZeroDivisionError Bir sayıyı 0’a bölmek
Liste İndeks Hatası IndexError Listede olmayan sıraya erişmek
Sözlük Anahtar Hatası KeyError Sözlükte olmayan anahtar
Özellik / Metot Bulunamadı Hatası AttributeError Nesnede olmayan bir metodu çağırmak
Modül Bulunamadı Hatası ModuleNotFoundError Kütüphane kurulu değil → pip yükle
Dosya Bulunamadı Hatası FileNotFoundError Dosya yolu yanlış
Sonsuz Özyineleme Hatası RecursionError Kendini durmadan çağıran fonksiyon

kaplumbağa (turtle), tkinter, py_oyun (pygame), Ursina ve SymPy kurulumla birlikte gelir. Diğer kütüphaneleri Terminal sayfasında anlatıldığı gibi pip yükle ile kurabilirsin.

Kodunu satır satır çalıştırıp değişkenlerin o anki değerlerini görebilirsin.

  • Bir satırın numarasının soluna tıkla ya da imleç o satırdayken F9’a bas. Satırda kırmızı bir nokta belirir. Kaldırmak için tekrar tıkla.
  • Koşullu breakpoint (Shift+F9): Yalnızca bir koşul doğru olduğunda durur. Uzun döngülerde tam istediğin anı yakalamak için idealdir. Koşullu breakpoint’ler turuncu noktayla gösterilir.
Satır 4: Koşullu Breakpoint penceresine puan < 50 yazılmış
harf_notu fonksiyonunun 4. satırına koşul: puan < 50
  • Hepsini Çalıştır → Tüm Breakpoint’leri Kaldır ile silebilirsin. Breakpoint’ler sekmeyle birlikte kaydedilir.

F5 ya da araç çubuğundaki 🐞 düğmesi debug’ı başlatır. Program ilk durma noktasına gelince durur; o satır editörde sarıyla vurgulanır ve editörün üstünde debug paneli açılır.

Program 13. satırdaki breakpoint'te durdu; debug panelinde küresel değişkenler görünüyor
Breakpoint • Satır 13: program durdu, değişkenler panelde.
Panel düğmesi Kısayol Ne yapar?
▶ Devam F5 Sonraki durma noktasına kadar çalışır
⏸ Duraklat F6 Çalışan programı o anda durdurur
↷ Adım At F10 Sonraki satıra geçer (fonksiyonun içine girmez)
↳ İçine Gir F11 Çağrılan fonksiyonun içine girer
↵ Dışına Çık Shift+F11 Fonksiyondan çıkana kadar çalışır
⏹ Durdur Shift+F5 Hata ayıklamayı bitirir

Debug başlamadan F10 veya F11’e basarsan program ilk satırda durarak başlar.

  • Başlık: nerede ve neden durulduğu: Breakpoint, Adım, Başlangıç, Duraklatıldı ya da Yakalanmamış hata, ardından satır numarası. Program çalışırken Çalışıyor… yazar.
  • YEREL DEĞİŞKENLER: o anki fonksiyonun değişkenleri (bir fonksiyonun içindeyken).
  • KÜRESEL DEĞİŞKENLER: dosyanın genelindeki değişkenler. Her değişkenin yanında Türkçe türü yazar (metin, liste (3), fonksiyon…). Liste, sözlük ve nesnelerin yanındaki ok ile içlerini açabilirsin.
  • İfade kutusu: İfade (Enter: değerlendir) kutusuna puan * 2 gibi bir ifade yazıp Enter’a basarsan o anki değeri hesaplanır. 👁 düğmesiyle ifadeyi İZLEME listesine eklersin; her adımda değeri yenilenir.
  • ÇAĞRI YIĞINI: hangi fonksiyonun hangisini çağırdığı (örn. harf_notu • satır 4, onu çağıran ana program • satır 16). Bir satıra tıklayınca o seviyenin değişkenleri gösterilir.
  • Panelin sağ üstündeki ok paneli küçültür.

Yukarıdaki koşullu breakpoint ile çalıştırınca program 92 ve 74 puanlarında durmaz; yalnızca puan 48 olduğunda durur:

Program harf_notu içinde 4. satırda durdu; YEREL DEĞİŞKENLER'de puan = 48, ÇAĞRI YIĞINI'nda harf_notu ve ana program
Koşul sağlandı: puan = 48. Terminalde 92 ve 74 için çıktılar zaten yazılmış.

İfade kutusuna puan + 10 yazıp 👁 düğmesine basınca ifade İZLEME listesine eklenir; her adımda yeniden hesaplanır:

İZLEME bölümünde puan + 10 = 58
İzleme: puan + 10 = 58
Adım atıldıktan sonra 14. satırda duruldu; notlar listesi değişkenlerde görünüyor
F10 ile bir adım ilerledikten sonra: yeni değişken notlar listesi göründü.