Python-da Funksiyalar və onların strukturu(I hissə)

Pythona yeni başlayanlar üçün funksiyaların sadə nümunələrlə izahı

Zahra Alizada
Pragmatech
Published in
3 min readSep 8, 2020

--

Funksiya nədir, onları necə təyin və istifadə edirik?

Funksiyalar proqramlaşdırmada müəyyən hərəkətləri olan və təkrar-təkrar istifadə etdiyimiz strukturlardır. Pythonda proqram yazdığımız zaman burada istifadə etdiyimiz müəyyən kodlar vardır ki, onları bir neçə yerdə təkrar istifadə etməyə ehtiyac duyuruq. Belə vəziyyətdə funksiya yaratmaq işimizi asanlaşdırır. Bu halda tez-tez istifadə edəcəyimiz kodları funksiya daxilində yazıb istədiyimiz zaman bu funksiyanı çağırmaqla istifadə edə bilərik.

Bundan başqa Pythonda hazır bir çox kitabxanalar var və bu kitabxanalarda əvvəldən yaradılmış bir çox funksiyalar var. Biz özümüz funksiya yaratmaqdan əlavə olaraq hazır olan bu funksiyalardan da istifadə edərək işimizi asanlaşdıra bilərik. Məsələn, print() funksiyasının vəzifəsi burada qeyd etdyimiz dəyərləri ekrana çap etməkdir. Bu funksiya Python developerləri tərəfindən bir dəfə yazılıb və biz də bu funksiyanı proqramımızın müxtəlif yerlərində təkrar-təkrar istifadə edirik. Funksiyaların istifadə olunması məqsədi budur. Funksiyalar bir dəfə define olunur (təyin olunur) və ehtiyacımız olduğu zaman istifadə edirik. Bundan başqa funksiyalar təkrarçılığın qarşısını alır və daha səliqəli bir kod yaza bilirik. Python developerlərinin yazdığı funksiyalara yəni bizim istifadə etdiyimiz hazır funksiyalara (print(), type() və s.) built-in function(daxili funksiyalar) deyilir. Ancaq bunlardan əlavə olaraq bizim şəxsən yaratdığımız funksiyalar da var ki, bunlara user-defined functions deyilir.

Funksiyaları real həyatdan nümunə ilə ifadə etməyə çalışsaq, misal üçün bir şirəçəkən aparatı alırıq və meyvə şirəsi istədiyimiz zaman bu aləti istifadə edirik deyə bənzətmə edə bilərik. Yəni bu alətin vəzifəsi və funksiyası meyvə şirəsi hazırlamaqdır.

Funksiyaların təyin edilməsi və istifadə edilməsi (çağırılması)

Funksiyanın təyin edilməsi

Bir funksiya təyin etmək üçün ilk şərt def açar sözündən istifadə edilməsidir. Bundan sonra gələn dəyər funksiyanın adı olur və bundan sonra istəyə bağlı olaraq funksiyanın parametrləri daxil edilir. Funksiyanın təyin edilməsi strukturu belədir:

def funksiya_adi(parametr1,parametr2...):           funksiya bloku            return deyeri

Burada biz sadəcə bir funksiya təyin etdik. Funksiyanı təyin etdikdən sonra istifadə etməsək bu funksiya bir işə yaramayacaq. Fərz edin ki, bir şirəçəkən almısız lakin onu heç istifadə etmirsiz. Funksiyanı istifadə etməyə biz funksiyanı çağırmaq deyirik.

Funksiyanın çağırılması

İlk öncə funksiyanın adını yazırıq, daha sonra bir dəyər alırsa o dəyəri qeyd edirik. Əgər heç bir dəyər almırsa daxilini boş buraxırıq.

Funksiyada parametr və arqumentlər

Funksiyanı istədiyimiz yerdə təkrar-təkrar istifadə edə bildiyimizi artıq bilirik. Funksiya daxilində dəyər olmadan çağırdığımız zaman funksiya daim eyni nəticəni çap edəcək. Biz fərqli nəticələr istəyiriksə fərqli dəyərlər yaratmalıyıq. Bunu şirəçəkən nümunəmizə uyğun olaraq desək, fərz edin şirəçəkəni işə salırıq biz ona alma daxil etdiyimiz zaman alma şirəsi, başqa meyvə daxil etdiyimiz zaman isə buna uyğun şirə istehsal etmiş olacaq. Burada alma — funksiyanın aldğı dəyərin yerində durur. Biz bu dəyərlərə parameters (parametrlər) və arguments(arqumentlər) deyirik.

Burada funksiya təyin edərkən yazdığımız dəyərə(ad) — parametr, funksiyanı çağırdığımız zaman daxil etdiyimiz dəyərə(“Nicat”) — isə arqument deyilir. Funksiyanı çağırdığımız zaman arqument parametrə bərabər olur. Daha sonra isə print() metodu daxilində ekrana yazılır. Funksiyanı təyin edərkən neçə parameter qeyd ediriksə funksiyanı çağırdığımız zaman da eyni qədər arqument daxil etməliyik. Buna uyğun olaraq riyazi hesablamalarla olan nümunələrə baxaq.

İlk öncə bir toplama əməliyyatı üçün funksiya yazaq:

Faktoriyal hesablaması üçün bir funksiya yazaq:

Funksiyalara müxtəlif yollarla parametrlər verə bilərik. Bu zaman funksiyalarımızı daha flexible(çevik) yaza bilirik. Funksiyalarımızı təyin edərkən parametr daxil ediriksə funksiyamızı çağırdığımız zaman da arqument qeyd etməliyik, etməsək burada xəta mesajı alarıq.

Bu funksiyada “ad” dəyəri olduğuna görə biz funksiyanı salamla() -bu formada çağıra bilmirik. Əgər biz parametrlərimizə default() dəyərlər mənimsətsək dəyər vermədən funksiyanı çağırsaq funksiya işləyəcək.

Burada user dəyər hissəsinə heç bir şey daxil etməsə belə funksiyanı çağıra bildi. Bu zaman default dəyərdən istifadə olundu.

Funksiyada istənilən sayda dəyər alma

Bir funksiya təyin etdiyimiz zaman xüsusi olaraq neçə parametr olacağını əvvəldən təyin etməli oluruq. Lakin belə bir limit qoymamaq üçün *dəyər işarəsindən istifadə edə bilərik.

Bu tip funksiyalarda dəyərlər üzərində hesablamalar apara bilmək üçün for loopundan istifadə edirik.

Funksiyada bir neçə dəyər istifadə etdiyimiz zaman müəyyən problemlər yarana bilər. Funksiyanı təyin edərkən daxil etdiyimiz parametrlərin ardıcılığına uyğun olaraq funksiyanı çağırdığımız zaman arqumentləri də bu ardıcıllığa uyğun daxil etməli oluruq. Əks halda məlumatlarımızın qeydiyyatında yanlışlıq olur.

Buradan gördüyünüz kimi soyad məlumatı ad hissədə, nömrə məlumatı isə soyad hissədə qeyd olundu. Belə xətaların olmaması üçün arqument yazmaq istədiyimiz parametrin adını yazıb, ona uyğun olan məlumatı mənimsətməliyik. Qeyd etmədiyimiz dəyərlər üçün isə default dəyər görünəcək.

Funksiyalar haqqında daha çox məlumat almaq üçün Pythonda Funksiyalar və onların strukturu(II hissə) məqaləmə nəzər yetirin…

Mənbə:

www.geeksforgeeks.org

www.foxford.ru

www.udemy.com

--

--