Dasturlashtiriladigan tarmoqlar va tizimlar uchun Python asoslari - funksiyalardan rekursiv foydalanish, DevOps / DevNet kurslari sharhlari Toshkent

Dasturlashtiriladigan tarmoqlar va tizimlar uchun Python asoslari - funksiyalardan rekursiv foydalanish, DevOps / DevNet kurslari sharhlari Toshkent

Maqolalar

Oldingi maqolalarimizdan birida biz funktsiyalar kabi kuchli vositani ko'rib chiqdik. Va biz kodda o'zimizning pastki dasturimizni belgilashni, argumentlar, ko'rsatmalar blokini va unga qaytarish qiymatini qo'shishni o'rgandik. Va shuningdek - dastur matnidagi muammolarni hal qilish uchun uni chaqiring. Bugun biz rekursiv funktsiyalar kabi qiziqarli vositani ko'rib chiqamiz Python - o'tish uchun buni bilish muhimdir DevOps kurslari / DevNet sharhlari Toshkent.

Rekursiya nima, DevOps kurslari / DevNet sharhlari Toshkent

Avvalo, rekursiya nima ekanligini tushunib olaylik. Albatta, bugungi maqolaning mavzusiga kelsak - funktsional dasturlash Python. Shu nuqtai nazardan, rekursiya - bu bir xil funktsiyani qayta chaqiradigan, ammo yangi ma'lumotlar bilan funksiya ko'rsatmalarining qo'shilishi. Odatda, bu funktsiya chaqiruvining oldingi iteratsiyasi natijasida olingan ma'lumotlar. Albatta, bizning DevOps / DevNet kurslari eng yaxshi Toshkent uchun O'zbekistonda IT mutaxassislari.

Ya'ni, agar siz rekursiya tamoyilini tahlil qilsangiz, u quyidagicha ko'rinadi: dastur subprogrammani chaqiradi, unga ma'lumotlarni argument shaklida qayta ishlash uchun uzatadi. Birinchi avlod subprogrammasi ularni qayta ishlaydi. Va keyin u qayta ishlash uchun argument sifatida qayta ishlangan ma'lumotlarni uzatib, xuddi shu pastki dasturning ikkinchi avlodini chaqiradi. Va hokazo, ideal holda ad infinitum.

Biroq, rekursiyaning ham afzalliklari, ham kamchiliklari bor. Rekursiv funktsiyalarning afzalliklari quyidagilardan iborat:

  • rekursiv dasturlash usulini o'zlashtirish qulayligi;
  • kichik kod bloklari bilan murakkab muammolarni hal qilish qobiliyati;
  • cheklangan miqdordagi standart pastki vazifalarga bo'linadigan vazifalarda yuqori samaradorlik.

Ushbu usulning kamchiliklari orasida quyidagilar katta ahamiyatga ega:

  • ish natijalarining qarama-qarshiligi va algoritmni tahlil qilishning ortib borayotgan murakkabligi;
  • kompyuter resurslarini iste'mol qilishning ko'chkiga o'xshash o'sishi barcha mavjud xotirani to'ldirishi va protsessorni bir necha soniya ichida yuklashi mumkin);
  • dasturchi tomonidan jarayonni tushunish uchun yuqori talablar.

Xulosa qilib aytganda, rekursiyani o'rganish oson, lekin qo'llash qiyin bo'lishi mumkin. Va tajribasiz qo'llarda, bu vosita foyda kabi ko'plab bosh og'rig'iga sabab bo'lishi mumkin. Va shuningdek - loyihangizda xotira oqishlari uchun ideal manba bo'ling. Shuning uchun uni qanday qilib to'g'ri ishlatishni o'rganish, shuningdek, uni rekursiya eng katta foyda keltiradigan joyda ishlatish juda muhimdir.

Pythonda muammolarni hal qilish uchun rekursiyadan foydalanishga misollar

Albatta, rekursiv dasturlashni olishni rejalashtirganlar o'zlashtirib olishlari kerak DevOps / DevNet kurslari sharhlari Toshkent. Va 2024 yilda O‘zbekistonda IT mutaxassisi bo‘ling. Katta ehtimol bilan, rekursiyadan foydalanishning eng oddiy misoli raqamlar yig'indisini olishdir 1 uchun n. Albatta, bu muammoni hal qilish uchun loopdan foydalanishingiz mumkin. Ammo rekursiv yechim biroz qisqaroq bo'ladi va asbobning ishlash printsipini ko'rsatadi.

Avvalo, funksiyani e'lon qilamiz def rec_sum(n) va yo'g'on nuqta qo'ying. 4 ta bo'shliq bilan ajratilgan keyingi qatorga shartli operator va tenglik testini bittaga qo'shing - agar n==1 bo'lsa: va qo'shimcha 4 bo'shliq bilan - qaytish 1. Keyingi qatorda, shartli bayonot bilan bir xil darajada if - rekursiv algoritmni o'z ichiga olgan qatorni qo'shing: qaytish n + rec_sum(n - 1).

Natijada, funktsiya o'zining tobora ko'proq yangi versiyalarini chaqiradi, har safar argumentni bittaga kamaytiradi. U nolga yetguncha, algoritm ishi to'xtab qoladi. Qo'shimcha ma'lumot olish uchun sizga borishni maslahat beramiz DevOps / DevNet muhandislik kurslari Toshkent platformada SEDİCOMM.

komanda SEDİCOMM universiteti: Cisco akademiyasi, Linux Professional Instituti, Python instituti.