Funksiyalar və modul proqramlaşdırma kompüter proqramlaşdırmasının mühüm hissələridir. Onlar bizə aydın və asan başa düşülən proqramlar yaratmağa kömək edir. Bu dərs sadə dildən və gündəlik nümunələrdən istifadə edərək funksiyaların və modul proqramlaşdırmanın nə demək olduğunu izah edəcək. Hər bir konsepsiya addım-addım izah olunur. Funksiyaların nə olduğunu, onlardan nə üçün istifadə etdiyimizi və kodumuzu necə təşkil etdiyini və işləməyi əyləncəli etdiyini öyrənəcəksiniz. Biz həmçinin modul proqramlaşdırmanın böyük problemi daha kiçik, idarə oluna bilən hissələrə necə böldüyünü araşdıracağıq.
Funksiya bir işi görən kiçik maşın kimidir. Proqramlaşdırmada funksiya çağırılan zaman müəyyən bir işi yerinə yetirən kod blokudur. Bir satış maşını haqqında düşünün. Pul qoyanda maşın sizə qəlyanaltı verir. Addımlar (pul qoymaq, qəlyanaltı seçmək və qəlyanaltı almaq) bu funksiyanın bütün hissələridir.
Funksiya girişi qəbul edir, onu emal edir və sonra çıxışı qaytarır. Məsələn, funksiya iki ədəd əlavə edərsə, o, rəqəmləri giriş kimi qəbul edir və cəmini çıxış kimi verir. Bu fikir, sənətdə yeni bir rəng əldə etmək üçün iki rəngi necə qarışdıra biləcəyinizə bənzəyir. Girişlər rənglər, çıxışlar isə yeni rəngdir.
Hər bir funksiyanın bir neçə vacib hissəsi var:
Məsələn, salam adlı sadə funksiya giriş kimi bir ad götürə və səmimi salamı qaytara bilər. Funksiyadakı addımlar sendviç hazırlamaq kimi işləyir: siz inqrediyentlərinizi seçirsiniz, onları qarışdırırsınız və sonra sendviçdən həzz alırsınız.
Bir misal görək. Tutaq ki, bir insanı adı ilə qarşılayan bir funksiya istəyirsiniz. Funksiya necə görünə bilər:
def salam (ad): "Salam, " + ad + "!" qaytarın.
Bu funksiyada:
Modul proqramlaşdırma böyük problemi daha kiçik, həlli asan hissələrə bölməkdən ibarətdir. Proqramın hər bir hissəsi ayrıca modul və ya funksiya kimi hazırlanır. Beləliklə, proqram bir tapmacaya bənzəyir, burada hər bir parça bütöv şəkil yaratmaq üçün bir-birinə uyğun gəlir.
Təsəvvür edin ki, siz LEGO qalası tikmək istəyirsiniz. Bütün qalanı bir anda tikməyə çalışmaq əvəzinə qüllələri, divarları və qapıları ayrıca tikirsiniz. Daha sonra, tam qala yaratmaq üçün bu parçalara qoşulursunuz. Proqramlaşdırmada modul proqramlaşdırma LEGO parçaları ilə tikintiyə bənzəyir. Hər bir parça (funksiya və ya modul) öz işini görür.
Funksiyalardan və modul proqramlaşdırmadan istifadə etməyin bir çox səbəbi var:
Bu ideyalar proqramçılara mürəkkəb problemləri idarə etməyə və sadə şəkildə daha böyük layihələr qurmağa kömək edir.
Burada sizə müxtəlif funksiyaları və onların necə işlədiyini göstərən daha çox nümunə var.
Bu funksiya iki ədəd əlavə edəcək. Bu, iki ədədi götürüb onların cəmini verən sehrli qutuya bənzəyir.
Məsələn, 3 və 2-nin qoyulması nəticədə 5 verir. Aşağıdakı koda baxın:
def əlavə edin (a, b): a + b qaytarın
Bu funksiya iki ədədi birləşdirməyiniz lazım olan istənilən vaxt kömək edir. Yeni bir rəng yaratmaq üçün iki fərqli rəngi qarışdırmaq kimi, burada da cəmi əldə etmək üçün iki rəqəmi qarışdırırsınız.
Bu funksiya sizə nömrənin cüt və ya tək olduğunu bildirir. Cüt ədədi 2-yə bərabər bölmək olar, tək ədədi isə bölmək olmaz.
Təsəvvür edin ki, bir səbət alma var. Əgər almaları cüt-cüt yerləşdirməyə çalışırsınızsa və bir alma kənarda qalırsa, bu rəqəm təkdir. Funksiya sadə bir test kimi işləyir:
def yoxlama_nömrəsi(nömrə): əgər ədəd % 2 == 0: "hətta" qaytar başqa: "tək" qaytarın
Nömrə daxil etdiyiniz zaman funksiya modul operatorundan istifadə edərək yoxlama aparır (bölmədən sonra qalanı tapır). 2-yə bölündükdə qalıq sıfır olarsa, "cüt" qaytarır; əks halda "tək" qaytarır.
Bu funksiya giriş kimi ad götürür və fərdi salamlamanı qaytarır. Məsələn, "Alice" adını versəniz, nəticə "Salam, Alice!"
def create_greeting(ad): "Salam, " + ad + "!" qaytarın.
Bu sadə nümunə funksiyaların dostluq mesajları yaratmaq üçün necə istifadə oluna biləcəyini göstərir. Hər bir funksiya çağırışı qapı zəngini çalmaq və isti qarşılanma kimi işləyir.
Modul proqramlaşdırmada siz tez-tez başqa funksiyalar daxilində funksiyalardan istifadə edirsiniz. Buna "funksiya tərkibi" deyilir. Bu, müxtəlif inqrediyentlərdən istifadə edərək sendviç hazırlamağa bənzəyir.
Tam yemək yaradan proqramı nəzərdən keçirək. Salat və sendviç hazırlamaq üçün ayrı funksiyalarınız ola bilər. Daha sonra başqa bir funksiya tam yeməyə xidmət etmək üçün bu funksiyaları çağırır.
def make_salad(): "Təzə salat" qaytarın def make_sandwich(): "Dadlı sendviç" qaytarın def make_meal(): salat = make_salad() sendviç = make_sandwich() qayıdış salatı + " ilə" + sendviç
make_salad və make_sandwich kiçik funksiyalarını birləşdirərək, make_meal funksiyası tam mesaj verir. Əgər sendviç reseptini dəyişməlisinizsə, bütün yemək kodunu deyil, yalnız make_sandwich funksiyasını dəyişirsiniz.
Böyük bir probleminiz olduqda, onu hissələrə ayıraraq həll etmək daha asandır. Hər kiçik hissə bir funksiya ilə həll edilə bilər. Bu modul proqramlaşdırmanın əsas ideyasıdır.
Təsəvvür edin ki, çox dağınıq bir otağınız var. Hamısını bir anda təmizləmək əvəzinə bir plan qura bilərsiniz:
Hər bir addım sadə və asandır. Bütün addımları bitirdiyiniz zaman otağınız təmizdir. Proqramlaşdırmada hər addım bir funksiya tərəfindən idarə olunur. Bu, problemin həllini xeyli asanlaşdırır.
Modul bir neçə funksiyanı ehtiva edən bir fayldır. Modul yaratdığınız zaman kodunuzu təkrar istifadə oluna bilən və mütəşəkkil edirsiniz. Məsələn, siz əsas arifmetika üçün funksiyaları saxlayan math_tools adlı modul yarada bilərsiniz.
Math_tools -da əlavə etmək , çıxmaq , vurmaq və bölmək kimi funksiyalarınız ola bilər. Daha sonra kodu yenidən yazmadan bir çox müxtəlif proqramlarda math_tools-dan istifadə edə bilərsiniz.
# Bu, math_tools.py adlı modulun nümunəsidir def əlavə edin (a, b): a + b qaytarın def çıxarın (a, b): a - b qaytarın def çarpın (a, b): a * b qaytarın def böl (a, b): əgər b != 0: a / b qaytarın başqa: qaytarmaq "Sıfıra bölmək mümkün deyil!"
Bu modulu proqramınıza idxal etməklə siz lazım olduqda funksiyaları çağıra bilərsiniz. Bu, vaxta qənaət edir və işinizi səliqəli saxlayır.
Bir neçə funksiyanı birlikdə istifadə etdiyiniz zaman bu, daha böyük proqramlar yaratmağınıza kömək edir. Hər bir funksiya komandadakı işçilər kimi müstəqil işləyir. Bir işçi yaxşı işləmirsə, bütün komandaya təsir etmədən həmin hissəni əvəz edə bilərsiniz.
Məsələn, sadə bir oyunun move_player , check_collision və update_score kimi funksiyaları ola bilər. Hər bir funksiya bir vəzifə üçün cavabdehdir. Onlar birlikdə oyunun rəvan işləməsini təmin edirlər.
Funksiyalar üçün aydın və sadə adların seçilməsi çox vacibdir. Yaxşı ad sizə funksiyanın nə etdiyini söyləyir. Hesablama_total adlı funksiyanı görəndə dərhal onun dəyərlər əlavə etdiyini bilirsiniz. Sadə və aydın adlar kodun oxunmasını, başa düşülməsini və istifadəsini asanlaşdırır.
Uzun və ya qarışıq adlardan istifadə etməyin. Funksiyanın yerinə yetirdiyi vəzifəyə birbaşa aid olan sözlərdən istifadə edin. Bu vərdiş hətta yeni proqramçılara hər funksiyanın nə etdiyini anlamağa kömək edir.
Bəzən funksiyalar sıfıra bölmək kimi problemlərlə üzləşə bilər. Bu səhvləri nəzakətlə idarə etmək vacibdir. Bir çox funksiyalar bu cür səhvləri yoxlayır və bir şey səhv olarsa faydalı mesaj verir.
Məsələn, bölmə funksiyamızda görürük:
def böl (a, b): əgər b != 0: a / b qaytarın başqa: qaytarmaq "Sıfıra bölmək mümkün deyil!"
Bu kod b-nin sıfır olub olmadığını yoxlayır. Əgər belədirsə, funksiya sizə sıfıra bölmək bilməyəcəyinizi bildirir. Bu, proqramın qəzaya uğramasının qarşısını alır və nəyin səhv olduğunu başa düşməyə kömək edir.
Parametrlər funksiya daxilində yer tutuculardır. Funksiyanı çağırdığınız zaman arqumentlər adlanan dəyərləri keçirsiniz. Məsələn, add(a, b) funksiyasında a və b parametrlərdir. Funksiyanı add(10, 5) ilə çağırdığınız zaman 10 və 5 dəyərləri arqumentlərə çevrilir.
Bu üsul funksiyanı çevik edir. Funksiyanı hər dəfə çağırdığınız zaman müxtəlif arqumentlərdən istifadə edə bilərsiniz. Resept kimidir. Salatda müxtəlif meyvələrdən istifadə etsəniz belə, addımlar eyni qalır və yenə də dadlı salat əldə edirsiniz.
Bir çox gündəlik texnologiyalar funksiyalara və modul proqramlaşdırmaya əsaslanır. Real həyatdan bir neçə nümunə:
Modul proqramlaşdırma çevik və yeniləmək asan sistemlər yaratmağa kömək edir. Bir hissənin dəyişdirilməsi və ya düzəldilməsi lazım olduqda, yalnız müvafiq modul tənzimlənir. Beləliklə, ümumi sistem rəvan işləməyə davam edir.
Yeni proqramçıların funksiyaları yazarkən edə biləcəyi bir neçə ümumi səhv var. Bunları bilməklə onlardan qaça bilərsiniz:
Bu səhvlərdən qaçaraq, daha təmiz və effektiv kod yaza bilərsiniz. Bu, proqramlarınızı saxlamağı və başa düşməyi asanlaşdırır.
Funksiyalar modulların tikinti bloklarıdır. Modul çoxlu funksiyaları özündə cəmləşdirən alətlər qutusuna bənzəyir. Bənzər alətləri bir yerdə saxladığınız kimi, əlaqəli funksiyaları modulda qruplaşdırırsınız. Beləliklə, müəyyən bir tapşırığa ehtiyacınız olduqda, hara baxacağınızı dəqiq bilirsiniz.
Məsələn, sizdə riyazi əməliyyatlar üçün modul, sətirlərlə işləmək üçün modul və tarixlərlə işləmək üçün başqa modul ola bilər. Hər bir modul öz sahəsinə aid funksiyaları təşkil edir. Layihələr böyüdükdə bu struktur çox faydalıdır.
Proqramlaşdırmada böyük problemlə qarşılaşdığınız zaman ən yaxşı yanaşma onu daha kiçik problemlərə bölməkdir. Hər bir kiçik məsələni funksiya yazmaqla həll etmək olar. Bütün kiçik hissələr həll edildikdən sonra tam həlli yaratmaq üçün bir yerə yığılırlar.
Bu yanaşma tapmacanın həllinə bənzəyir. Parçalarla başlayırsınız və sonra tam şəkli görmək üçün onları bir-bir birləşdirin. Hər bir kiçik hissənin düzgün işlədiyini bilmək son nəticəni güclü və etibarlı edir.
Funksiyalarınızı yazarkən bəzi sadə məsləhətlər:
Bu məsləhətlərdən istifadə edərək, bir çox layihələrdə təkrar istifadə oluna bilən güclü və asan başa düşülən funksiyalar yarada bilərsiniz.
Proqramda funksiyaları yazmaq və istifadə etmək üçün sadə addım-addım prosesi keçək:
Bu proses proqramları modul şəkildə qurmağa kömək edir. Hər kiçik hissə bir funksiya tərəfindən yerinə yetirilir və bütün hissələr yekun proqram üçün birləşir.
Gəlin bu dərsdən əsas fikirləri nəzərdən keçirək:
Bu dərs funksiyalardan və modul proqramlaşdırmadan istifadə edərək kodlaşdırma həyatınızı necə sadə və əyləncəli edə biləcəyinizi göstərdi. Hər bir funksiya böyük bir layihənin bir hissəsini tamamlayan köməkçi vasitə kimidir. Bu alətləri bir yerə yığdığınız zaman səliqəli, mütəşəkkil və asan başa düşülən proqramlar qurursunuz.
Unutmayın ki, yaxşı proqramlaşdırmanın açarı problemləri kiçik, idarə oluna bilən hissələrə bölməkdir. İstər nömrələr əlavə etsəniz, kimisə salamlasanız və ya oyun qursanız, funksiyalar bunu addım-addım etməyə kömək edir. Modul proqramlaşdırma sadə, aydın hissələrdən istifadə edərək mürəkkəb sistemlər qurmağa imkan verən strategiyadır.
Funksiyaların yazılmasını və kodunuzu modullara yerləşdirməyi məşq etdikcə, problemlərin həllində daha yaxşı olacaqsınız. Yazdığınız hər bir kiçik funksiya daha böyük və daha təsirli proqramlar yaratmaq yolunda bir addımdır. İstənilən əyləncəli tapmaca və ya tikinti dəstində olduğu kimi kodunuzu sınaqdan keçirməyə, sınaqdan keçirməyə və təkmilləşdirməyə davam edin!