Girintiler ile Yapı Oluşturmak

Yapılar

Stones

Bir blok, bir program veya betik içindeki komut grubudur. Genellikle programlama veya betikleme diline bağlı olarak, blok için beyanın yapılmasını ve en az bir komutun kullanılmasını içerir. Bloklar ile gruplara ayrılmaya izin veren bir dil blok yapılı bir dildir. Genel olarak, bloklar da bloklar içerebilir, böylece girintili bir blok yapımız olur. Bir betik veya programdaki bir blok, grup emirlerinin tek bir emirmiş gibi yürütülmesi şeklinde davranır. Pek çok durumda, değişkenlerin ve fonksiyonların sözcüksel kapsamını sınırlamak için bir yol olarak kullanılır.

İlk olarak, Basic ve Fortran gibi basit dillerde, blok yapısını kullanmanın bir yolu yoktu. Programcılar “go to” yapılarına güvenmek zorundaydı, şimdi ise bu davranış biçimi uygun görülmemektedir, çünkü “Go to programları” kolaylıkla “spagetti kodlara” dönüşebilmektedir, yani karışmış ve anlaşılmaz kontrol yapılarına. Blok yapıları ilk olarak ALGOL’da birleşik emir olarak ortaya çıkmıştı. Programlama dilleri genellikle grup emirlerini bloklara dönüştürmek için belli yöntemler kullanmaktadır:

• begin ... end

ALGOL, Pascal ve diğerleri Pascal’daki bu kod parçası blokların nasıl kullanıldığını gösteriyor:

      with ptoNode^ do
      begin
        x := 42;
        y := 'X';
      end;
    

• do ... done

örneğin Bourne ve Bash kabukları

•Küme parantezleri (veya süslü parantezler) kullanmak: { … }

C, C++, Perl, Java ve pek çok programlama dili için en yaygın yöntem küme parantezlerini kullanmaktır. Aşağıdaki örnek, C dilinde bir koşullu önermeyi göstermektedir:

      if (x==42) {
          printf("Hayat, Evren ve Her Şeye Dair Nihai Sorunun Cevabı\n");
      } else {
          printf("Sadece bir sayı!\n");
      }
        
Bu kod parçasında girintiler şart değildir. Dolayısyla kodu genel görgü kurallarını çiğneyerek şöyle de yazabiliriz: if (x==42) {printf("Hayat, Evren ve Her Şeye Dair Nihai Sorunun Cevabı\n");} else {printf("Sadece bir sayı!\n");} Lütfen, Python’un avantajlarını anlamak için bunu aklınızda tutun!

• if ... fi

örneğin Bourne and Bash kabukları

Kodu Girintilemek

Blocks

Python kodu girintilemek için farklı bir prensip kullanır. Python programları girintileme yaparak yapılanmış olur, yani girintilere göre kod blokları ortaya çıkar. Evet, bu zaten bizim herhangi bir program kodundan beklediğimiz şey, değil mi? Evet, ancak Python’da bu bir dil gereksinimi, stil olayı değil. Bu prensiple başka kişilerin Python kodlarını okumak ve anlamak daha kolay olur. Peki, bu nasıl çalışır? Sağ tarafa aynı mesafede olan bütün komutlar aynı kod bloğu içinde yer alır, yani bir blok içindeki komutlar dikey olarak hizalanır. Blok, daha az girintiye sahip bir satıra veya dosyanın sonuna ulaşıldığında biter. Bir bloğun daha derin bir girintilemeye ihtiyacı olursa, sağ tarafa daha çok girintilenir.

Yeni başlayanların aşağıdaki örneği anlamalarını beklemiyoruz, çünkü çoğunlukla kullanılan koşullu önermeler ve döngüler gibi yapıları henüz görmediler. Lütfen açıklamalar için döngüler ve koşullu önermeleri içeren bölümleri gözden geçiriniz.

Aşağıdaki program “Pisagor üçlüsü”nü hesaplamak için bir algoritma sunar. For döngüleri üzerindeki bölümümüzde, Pisagor sayılarına ilişkin açıklamalar bulacaksınız.

from math import sqrt
n = input("Azami Sayı? ")
n = int(n)+1
for a in range(1,n):
    for b in range(a,n):
        c_square = a**2 + b**2
        c = int(sqrt(c_square))
        if ((c_square - c**2) == 0):
            print(a, b, c)
Bu örnekte, henüz size bahsetmediğimiz, Python’da yapılandırmanın bir başka yönünü göreceğiz. Döngüler ve koşullu önermeler iki nokta üst üste (:) işareti ile biter – fonksiyonlar ve diğer bloklu yapılarda da bu geçerlidir. Dolayısıyla Python’un iki nokta üst üste işareti ve girintilerle yapılandığını söyleyebiliriz.