(Python) Alt Programlar: Prosedürler ve Fonksiyonlar - 1


Alt programlar

Bir alt program , programın bir adı olan ve kendi ayrı görevini çözen ayrı bir parçasıdır. Alt program, ana programın başında bulunur ve adı belirtilerek ana programdan başlatılabilir (çağrılabilir).

Programın farklı yerlerine aynı kodu yazmanız gerekirse, alt yordamları kullanmak, kod tekrarını önlemenizi sağlar. 
Bir programa içe aktarılan kitaplıklar (örneğin, matematik kitaplığı matematik), zaten birisi tarafından derlenmiş olan alt programlardan oluşur. Programcıların hangi algoritmaları uyguladıklarını düşünmelerine gerek yoktur, sadece tam olarak ne yaptıklarını düşünerek onları uygularlar. Bu büyük bir zaman tasarrufu. Daha önce başkası tarafından yazılmış bir algoritma yazmaya gerek yoktur.

Her alt program yalnızca bir görev yapmalıdır,  ya sadece bir şey hesaplayın, ya da bazı verilerin çıktısını alın ya da başka bir şey yapın. 

İki tür alt program vardır - prosedürler ve işlevler

Alt prosedürler, bir sonucu ekranda belirli bir biçimde görüntülemek gibi bazı eylemler gerçekleştirir (basit bir örnek olarak, print() deyimi, verileri ekrana yazdıran standart bir alt prosedürdür).

İşlev alt programları, ana programda kullanabileceğimiz bir sonuç döndürür (sayı, karakter dizisi vb.).

Basit bir prosedür yazmaya çalışalım:
Ekranda "Error" dizesini görüntülememiz gerektiğini varsayalım. her defasında kullanıcının hatasından dolayı kodda bir hata oluşabilir.Örneğin yanlış veri girdiğinde.
Bu, ifadeyi yazarak yapılabilir. print("Hata") Ve şimdi programda birçok yere böyle bir satırın eklenmesi gerektiğini hayal edin. Tabii ki, her yere yazabilirsiniz. Ancak bu çözümün iki dezavantajı vardır.
1) Bu dizi hafızada birçok kez saklanacaktır.
2) Hata durumunda çıktıyı değiştirmek istiyorsak bu satırı program boyunca değiştirmek zorunda kalacağız ki bu oldukça elverişsizdir

Bu gibi durumlarda prosedürlere ihtiyaç vardır.
Prosedürü olan bir program şöyle görünebilir:
  def printError(): # prosedür açıklaması print("Hata") ... printError() # yürütme prosedürünü başlatır. # Sadece yürütmek istediğimiz prosedürün adını belirtin ... printError()
Hatırlamanız gerekiyor!
  1. Yordam, def (İngilizce'den - define - - tanımlamak için) kelimesiyle başlar. Prosedürün adından sonra boş parantezler ve iki nokta üst üste yazılır . Parametreler parantez içinde belirtilebilir (buna daha sonra değineceğiz).
  2. Bir prosedürde yürütülen tüm ifadeler girintilidir. 
  3. Bir prosedürü yürütmek için ana programda onu ismiyle çağırmanız ve parantez yazmayı unutmayın!
  4. Bir programdaki bir prosedürü istediğiniz kadar çağırabilirsiniz.

Parametreler ve Argümanlar

Şimdi bir kullanıcının yaptığı hataya karşılık olarak ne tür bir hata yaptığına bağlı olarak farklı mesajlar göstermemiz gerektiğini düşünelim.
Bu durumda, her hata için kendi prosedürünüzü yazabilirsiniz:  
def printErrorZero():
    print("Hata. Sıfıra bölme!")
def printErrorInput():
    print("Girişte hata!")

Ya daha birçok olası hata varsa? Bu çözüm bize uymayacak!
Hangi hata mesajını göstereceğini söyleyerek prosedürü nasıl kontrol edeceğimizi öğrenmemiz gerekiyor.
Bunun için prosedür adından sonra parantez içinde yazacağımız parametrelere ihtiyacımız var.
def printError(lar):
    print("s")

Bu prosedürde, s bir parametredir - prosedürü kontrol etmenizi sağlayan özel bir değişken.
 
parametresi, alt programın nasıl çalıştığını belirleyen bir değişkendir. Alt program başlığında parametre adları virgülle ayrılmıştır.


Şimdi, prosedürü çağırırken, prosedürümüzdeki parametreye (değişken s) atanacak gerçek değeri parantez içinde belirtmeniz gerekir.
printError("Hata! Sıfıra bölme!")

Böyle bir değere argüman denir.
 
Argüman alt program çağrıldığında ona iletilen parametre değeridir.

Bir bağımsız değişken yalnızca sabit bir değer değil, aynı zamanda bir değişken veya aritmetik bir ifade olabilir.

Yerel ve genel değişkenler

Ana programda tanıtılan değişkenler global (veya paylaşılan) olarak adlandırılır.

Genel değişkenlere herhangi bir alt programdan erişebilirsiniz. 

Yalnızca alt programda kullanılacak olan ek değişkenlerin tanıtılması genellikle gereklidir. Bu tür değişkenlere yerel (veya yerel) denir. Onlarla yalnızca oluşturuldukları alt program içinde çalışabilirsiniz. Rutinlerin geri kalanı onlar hakkında hiçbir şey "bilmiyor".

Böylece, bir değişkenin kapsamını (kapsamını) yalnızca gerçekten ihtiyaç duyulduğu alt programla sınırlandırmak mümkündür. Programlamada bu tekniğe kapsülleme  - değişkenin dışarıdan değiştirilmesini gizleme.

Üç programı analiz edin:


 

Açıklama Program
1) Bu programda i değişkeni yereldir. Ana programda i değişkeni yoksa bir hata mesajı alırız. Ve eğer böyle bir değişken varsa (o zaman bu global bir değişkendir), değeri ekranda görüntülenir.
tanım testi():
    yazdır(i)
2) Burada global bir i değişkeni olsa bile 2 değerinde yeni bir yerel değişken i oluşturulacak ve ekranda 2 görünecektir. ekran.
tanım testi():
  ben = 2
    yazdır(i)
3) Bu programda 15 değerinde global bir i değişkeni vardır. Değeri alt program içinde değiştirilebilir, bunun için global olduğunu açıkça beyan etmek gerekir ( global komutunu kullanın).
Prosedür, i genel değişkeni ile çalışacak ve ona yeni bir 2 değeri atanacak. 2 değeri görüntülenir.
tanım testi():
  küresel ben
    ben = 2
    
# ana program
ben = 15
yazdır(ı)