Altproqram(Subprogram) nədir?Pythonda Funksiyalar (1-ci hissə)

Sevil Rasulova
Pragmatech
Published in
3 min readSep 5, 2020

Altproqram nədir?

İstənilən bir dildə yazılan kodun oxunaqlı olması üçün onu bacardığımız qədər yığcam tərtib etməliyik. Amma bəzən kısa kod yazmaq çətin olur və hətta kodun uzunluğu 10–15 ekran səhifəsi belə tuta bilir. Bu da antik bir sənədin sonsuz uzunluğu kimi görünür... Ona görə belə uzun proqramların yazılması bir proqramçıya yox, bir neçəsinə tapşırılır. Bu paylaşma o zaman mümkündür ki, tapşırıq bir neçə alt tapşırığa ayrılmış olsun. Beləliklə, hər proqramçı ayrıca proqram kodu, yəni altproqramı yazır.

Altproqram əsas proqramın ayrı-ayrı yerlərində dəfələrlə müraciət etmə imkanı verən kodun adlandırılmış hissəsidir. Altproqramların əsas vəzifəsi proqramı rahat anlaşılan etmək və strukturlaşdırmaqdır. Başqa bir üstünlüyü isə ondadır ki, altproqramda ixtiyari dəyişiklər avtomatik onun istifadə olunduğu bütün hissələrə (çağırışlara) təsir edir.

Altproqramların ümumi strukturu :

Altproqramın başlığında onun adı və çağırılma üsulu göstərilməlidir. Həmçinin bu proqrama əsas proqramın ixtiyari yerindən və hətta, başqa altproqramdan dəfələrlə müraciət edə bilərsiniz. Bu proqram icra edildikdən sonra, əsas proqram icrasına qaldığı yerdən davam edir.

Pythonda altproqram nədir?

Müxtəlif dillərdə altproqram prosedur və ya funksiya adlanır. Python dilində altproqram funksiyalardır. Ümumiyyətlə, Python funksional dil olduğundan bu dildə funksiyalardan çox istifadə olunur. Həm də python dilinin öz sintaksında təyin olunmuş çoxlu standart funksiyalar var ki, bunlar da bu dildə kod yazmağı asanlaşdırır. Məsələn, tez-tez istifadə etdiyimiz input(), range(), print() standart təyin olunmuş funksiyalardır.

Pythonda funksiyaları necə yaradırıq?

  • Funksiya bloku def (define-müəyyən etmək) açar sözü ilə başlayır, ardınca funksiyanın adıdairəvi mötərizələr () gəlir.
  • Mötərizələrin içində funksiyanın parametrləri yazılır.
  • Mötərizələrin ardınca qoşa nöqtə (:) qoyulub, aşağıda funksiyanın yerinə yetirməli olduğu əmrlər yazılır.
  • Əmrlərin sonunda isə return açar sözündən istifadə edərək bir dəyər əldə edib, əsas proqramımızda bu dəyəri istifadə edirik.
  • Əsas proqramda funksiyanı çağırmaq üçün funksiyanın adı və sonra mötərizədə isə parametrlərə uyğun arqumentlər yazılır.
def funksıyanın adı (parametrlər):
əmrlər...(burda parametrdə verdiyimiz dəyişənlər üzərində aparmaq istədiyimiz əmrləri yazırıq)
return (dəyər)

funksiyanın adı(hər parametrə uyğun argumentlər)

Kod nümunəsi :

# 2 ədəddən ən böyüyünü verən funksiya
def max(a, b):
if a > b :
return a
else :
return b
print (max(100, 423))c = 2 * max(45, 27)
print (c)
~ Nəticə: 423
90

Qeyd1 : Print () funksiyası ilə return açar sözünün fərqi :

Bir çoxumuz bu ikisinin bir-birindən çoxda fərqlənmədiyini düşünürük, amma əslində hər biri fərqli iş görür. Print () funksiyası sadəcə ona verilən dəyəri ekrana çap edir. Biz sonra bu dəyəri kodun hansısa hissəsində istifadə edə bilmirik. Ancaq return açar sözü bizə bir dəyər qaytarır, yəni ondan sonra yazılan dəyər yadda saxlanılır və biz sonra bu dəyər üzərində əməliyyatlar apara bilirik. Yuxarıdakı kod nümunəsinə baxsaz, burda funksiyada son dəyəri return etdiyimiz üçün funksiya xaricində c dəyişəninin dəyərini { 2* max(45, 27) }-ə bərabər edə bildim. Əgər funksiya daxilində {return a } yerinə { print (a) } yazsaydıq, print () funksiyası heç bir dəyər qaytarmadığından c-nin dəyəri 90 deyil, None olacaqdı. Amma bu o demək deyil ki, funksiya daxilində print() yazmaq olmaz. Əlbəttə ki, yaza bilərik. Sadəcə nəzərə almalısız ki, print () funksiyası ilə ekrana çap edəcəyiniz dəyər yadda saxlanılmır, yəni daha sonra bu data üzərində əməliyyatlar apara bilməyəcəksiniz :

def max(a, b):
if a > b :
print (a)
else :
print (b)
max(100, 423)~ Nəticə :423

Qeyd2 : Parametr yoxsa arqument?

Parametrlər funksiya təyin olunarkən mötərizə daxilində yazılan dəyişənlərdir.

Argument isə funksiyanı çağırarkən ona ötürmək istədiyimiz dəyərlərə deyilir. Bundan başqa , arqumentləri verərkən onların sayı uyğun funksiyadakı parametrlərin sayı qədər olmalıdır :

#Bu kod error verəcək, çünki funksiya 2 arqument tələb etdiyi halda 1 arqument verilib. 

def data(ad, soyad):
print(ad + " " + soyad)
data("Sevil")~ Nəticə :TypeError: data() missing 1 required positional argument: 'soyad'

Məqaləmin 2-ci hissəsində funksiyaya arqumentlərin ötürülməsi barəsində daha geniş məlumat verəcəm…

Mənbələr :

--

--

Sevil Rasulova
Pragmatech

Studying at lyceum of physics, mathematics and computer science oriented from Baku,Azerbaijan