Python pamati programmējamiem tīkliem un sistēmām - rekursīva funkciju izmantošana, DevOps / DevNet kursu apskati Taškentā

Python pamati programmējamiem tīkliem un sistēmām - rekursīva funkciju izmantošana, DevOps / DevNet kursu apskati Taškentā

Blogs

Vienā no mūsu iepriekšējiem rakstiem mēs jau apskatījām tik spēcīgu rīku kā funkcijas. Un mēs uzzinājām, kā kodā definēt savu apakšprogrammu, pievienot tai argumentus, instrukciju bloku un atgriešanas vērtību. Un vēl - sauc to problēmu risināšanai tālāk programmas tekstā. Šodien mēs apskatīsim tik interesantu rīku kā rekursīvās funkcijas Pitons - tas ir svarīgi zināt, lai nokārtotu DevOps kursi / DevNet atsauksmes Taškenta.

Kas ir rekursija, DevOps kursi / DevNet atsauksmes par Taškentu

Vispirms sapratīsim, kas ir rekursija. Protams, saistībā ar šodienas raksta tēmu - funkcionālā programmēšana Pitons. Šajā kontekstā rekursija ir funkcijas norādījumu pievienošana, kas vēlreiz izsauc to pašu funkciju, bet ar jauniem datiem. Parasti tie ir dati, kas iegūti funkcijas izsaukuma iepriekšējās iterācijas rezultātā. Protams, mūsu DevOps / DevNet kursi labākie Taškentā par IT speciālisti Uzbekistānā.

Tas ir, ja analizējat rekursijas principu, tas izskatās šādi: programma izsauc apakšprogrammu, nododot tai datus apstrādei argumenta veidā. Pirmās paaudzes apakšprogramma tos apstrādā. Un tad tā izsauc tās pašas apakšprogrammas otro paaudzi, nododot tai apstrādātos datus kā argumentu atkārtotai apstrādei. Un tā tālāk, ideālā gadījumā līdz bezgalībai.

Tomēr rekursijai ir gan priekšrocības, gan trūkumi. Rekursīvo funkciju priekšrocības ietver:

  • rekursīvās programmēšanas metodes apguves vieglums;
  • spēja risināt sarežģītas problēmas ar maziem koda blokiem;
  • augsta veiktspēja uzdevumos, kurus var iedalīt ierobežotā skaitā standarta apakšuzdevumu.

Tā kā no šīs metodes trūkumiem vissvarīgākie ir šādi:

  • darba rezultātu pretintuitivitāte un pieaugošā algoritma analīzes sarežģītība;
  • lavīnai līdzīgs datora resursu patēriņa pieaugums var aizpildīt visu pieejamo atmiņu un noslogot centrālo procesoru dažu sekunžu laikā);
  • augstas prasības procesa izpratnei no programmētāja puses.

Rezumējot, rekursiju ir viegli iemācīties, taču to var būt grūti piemērot. Un nepieredzējušās rokās šis rīks var izraisīt tik daudz galvassāpes, cik priekšrocības. Un arī - kļūsti par ideālu atmiņas noplūdes avotu savā projektā. Tāpēc ir ļoti svarīgi iemācīties to pareizi lietot, kā arī lietot tieši tur, kur rekursija dod vislielāko labumu.

Rekursijas izmantošanas piemēri problēmu risināšanai programmā Python

Protams, rekursīvā programmēšana ir jāapgūst tiem, kas plāno uzņemties DevOps / DevNet kursu apskati Taškenta. Un kļūt par IT speciālistu Uzbekistānā 2024. gadā. Visticamāk, vienkāršākais rekursijas izmantošanas piemērs ir skaitļu summas iegūšana no 1 līdz n. Protams, šīs problēmas risināšanai varat izmantot cilpu. Bet rekursīvais risinājums būs nedaudz īsāks un parādīs rīka darbības principu.

Vispirms deklarēsim funkciju def rec_sum(n) un ielieciet kolu. Nākamajā rindā, kas ir atkāpe ar 4 atstarpēm, pievienojiet nosacījuma operatoru un vienlīdzības testu vienam - ja n==1: un ar papildu 4 atstarpēm - atgriezt 1. Nākamajā rindā tajā pašā līmenī kā nosacījuma paziņojums if — pievienojiet rindu, kurā ir rekursīvs algoritms: atgriešanās n + rec_sum(n - 1).

Rezultātā funkcija izsauks arvien jaunas savas versijas, katru reizi samazinot argumentu par vienu. Līdz sasniegs nulli, kur algoritms apstāsies. Lai uzzinātu vairāk, iesakām doties DevOps / DevNet inženieru kursi Taškenta uz platformas SEDICOMM.

Komanda SEDICOMM universitāte: Cisco akadēmija, Linux Profesionālais institūts, Python institūts.