Hadi bu hatayı biraz yakından tanıyalım. Düşünün ki, sabah erkenden bilgisayarınızın başına geçtiniz ve harika bir Python programı yazmaya karar verdiniz. İlk satırları yazıp, mantığınızı oluşturmaya başlıyorsunuz. Ancak birdenbire bir hata mesajı alıyorsunuz:
IndentationError: expected an indented block
Bir anda ekranda beliren bu yazı, kafanızın karışmasına sebep oluyor. Ne demek istiyor bu Python? Geriye dönüp yazdığınız kodu kontrol ediyorsunuz ama hiçbir şey yanlış görünmüyor gibi. Aslında Python, çok hassas bir dil. İnsanın yapacağı en ufak bir hata bile onu şaşırtabiliyor. Öyle ki, *indentation* yani girinti kullanımı, Python’un dilinin temel taşlarından biridir. Peki ama nedir bu "Indentation Error" ve nasıl çözülür?
Indentation Error Nedir?
Python'da, kodun hangi bloğa ait olduğunu belirtmek için girinti (indentation) kullanılır. Bu, dilin en karakteristik özelliklerinden biridir. Diğer programlama dillerinde genellikle süslü parantezler `{}` ile bloklar belirlenirken, Python'da bloklar, satır başındaki boşluklar ile tanımlanır.
Yani bir kod bloğu yazarken, eğer doğru girintiyi kullanmazsanız Python, nerede başladığını ve nerede bittiğini anlayamaz ve bu da bir "IndentationError" hatasına sebep olur.
IndentationError: expected an indented block Hatası
Bu hata genellikle bir fonksiyon, döngü veya koşul yapısının içerisinde yer alan bir satırda girinti eksik olduğunda meydana gelir. Python, kodun belirli bir düzen içinde yazılmasını bekler. Bu hatayı alıyorsanız, büyük ihtimalle bir kod bloğunun başında girinti kullanmamışsınızdır.
Mesela, aşağıdaki gibi bir kodda bu hata alınabilir:
def merhaba_dunya():
print("Merhaba, Dünya!")
Yukarıdaki örnekte, `print` komutu fonksiyonun içinde olmalı ancak girinti (indentation) eksik. Python, bu durumda fonksiyonun ne yapması gerektiğini bilemez ve hata verir.
IndentationError Nasıl Çözülür?
Bu hatayı düzeltmek oldukça basittir. Yapmanız gereken şey, hatalı satırı doğru girintiyle düzenlemektir. Python, genellikle bir bloğun içinde 4 boşluk girintisi kullanılmasını önerir. Ancak tab (sekme) tuşunu kullanarak da girinti yapabilirsiniz, fakat bunun tutarlı olması çok önemlidir. Yani, bir yerde boşlukla girinti yapıyorsanız, her zaman boşluk kullanmalısınız; tab kullanıyorsanız, her zaman tab kullanmalısınız.
İşte doğru yazılmış hali:
def merhaba_dunya():
print("Merhaba, Dünya!")
Görüyorsunuz, `print` satırı şimdi doğru şekilde girintilenmiş ve Python bunu anlayabiliyor.
Girinti Hatalarının Başka Sebepleri
Her ne kadar genellikle bu hatayı kod bloğunda girinti eksikliği nedeniyle alırsak da, bazen karşımıza başka sebeplerle de çıkabilir. Örneğin:
- Farklı sayıda boşluk kullanmak: Kodda hem tab tuşu hem de boşluk kullanmak Python’un kafasını karıştırabilir. Her zaman aynı tür girintiyi kullanmaya özen gösterin.
- Fazla girinti: Bir bloğu fazla girintilediğinizde de benzer bir hata alabilirsiniz. Fazladan girintiye dikkat edin.
Sonuç olarak
Python’daki *IndentationError*, genellikle küçük bir dikkatsizlikle ortaya çıkar ancak çözümü oldukça basittir. Girintiye dikkat etmek, Python'un temel kurallarından biridir. Hatalarınızı dikkatli bir şekilde inceleyerek, kodunuzun her satırında doğru girintiyi kullandığınızda, Python'un diline olan sevginizi daha da pekiştireceksiniz.
Unutmayın, hatalar birer öğrenme fırsatıdır! Yavaşça ve dikkatlice yazdığınız her satır, sizi bir adım daha ileriye götürür.