Մեր նախորդ հոդվածներից մեկում մենք արդեն դիտարկել ենք այնպիսի հզոր գործիք, ինչպիսին գործառույթներն են: Եվ մենք սովորեցինք, թե ինչպես սահմանել մեր սեփական ենթածրագրը կոդով, ավելացնել արգումենտներ, հրահանգների բլոկ և դրան վերադարձնող արժեք: Եվ նաև - անվանեք այն՝ ծրագրի տեքստում հետագա խնդիրների լուծման համար: Այսօր մենք կդիտարկենք այնպիսի հետաքրքիր գործիք, ինչպիսին է ռեկուրսիվ ֆունկցիաները Python - սա կարևոր է իմանալ անցնելու համար DevOps դասընթացներ / DevNet-ի ակնարկներ Տաշքենդում.
Ինչ է ռեկուրսիան, DevOps դասընթացներ / DevNet-ի ակնարկներ Տաշքենդում
Նախ, եկեք հասկանանք, թե ինչ է ռեկուրսիան։ Իհարկե, այսօրվա հոդվածի թեմայի հետ կապված՝ ֆունկցիոնալ ծրագրավորում Python. Այս համատեքստում ռեկուրսիան ֆունկցիայի հրահանգի ավելացումն է, որը նորից կանչում է նույն ֆունկցիան, բայց նոր տվյալներով։ Սովորաբար սա այն տվյալն է, որը ստացվել է ֆունկցիայի կանչի նախորդ կրկնության արդյունքում: Իհարկե, մեր DevOps / DevNet դասընթացներ լավագույն Տաշքենդ համար ՏՏ մասնագետներ Ուզբեկստանում.
Այսինքն, եթե դուք վերլուծում եք ռեկուրսիայի սկզբունքը, ապա այն ունի հետևյալ տեսքը. ծրագիրը կանչում է ենթածրագր՝ փոխանցելով այն մշակման համար փաստարկի տեսքով։ Առաջին սերնդի ենթածրագրերը դրանք մշակում են։ Եվ այնուհետև այն կանչում է նույն ենթածրագրի երկրորդ սերունդը՝ փոխանցելով նրան մշակված տվյալները՝ որպես վերամշակման փաստարկ։ Եվ այսպես շարունակ, իդեալականորեն անվերջ:
Այնուամենայնիվ, ռեկուրսիան ունի և՛ առավելություններ, և՛ թերություններ: Ռեկուրսիվ ֆունկցիաների առավելությունները ներառում են.
- ռեկուրսիվ ծրագրավորման մեթոդի յուրացման հեշտություն;
- կոդի փոքր բլոկներով բարդ խնդիրներ լուծելու ունակություն.
- բարձր կատարողականություն առաջադրանքներում, որոնք կարելի է բաժանել որոշակի թվով ստանդարտ ենթաառաջադրանքների:
Մինչդեռ այս մեթոդի թերությունների թվում առավել կարևոր են հետևյալները.
- աշխատանքի արդյունքների հակաինտուիտիվությունը և ալգորիթմի վերլուծության աճող բարդությունը.
- համակարգչային ռեսուրսների սպառման ավալանշի նման աճը կարող է մի քանի վայրկյանում լրացնել ողջ հասանելի հիշողությունը և բեռնել պրոցեսորը.
- ծրագրավորողի կողմից գործընթացը հասկանալու բարձր պահանջներ:
Ամփոփելու համար, ռեկուրսիան հեշտ է սովորել, բայց դժվար է կիրառել: Իսկ անփորձ ձեռքերում այս գործիքը կարող է նույնքան գլխացավ առաջացնել, որքան օգուտներ: Եվ նաև՝ դառնալ իդեալական աղբյուր ձեր նախագծում հիշողության արտահոսքի համար: Հետևաբար, շատ կարևոր է սովորել, թե ինչպես օգտագործել այն ճիշտ, ինչպես նաև օգտագործել այն հենց այնտեղ, որտեղ ռեկուրսիան տալիս է ամենամեծ օգուտը:
Python-ում խնդիրներ լուծելու համար ռեկուրսիայի օգտագործման օրինակներ
Իհարկե, ռեկուրսիվ ծրագրավորումը պետք է տիրապետեն նրանց, ովքեր նախատեսում են վերցնել DevOps / DevNet դասընթացների ակնարկներ Տաշքենդում. Եվ դառնալ ՏՏ մասնագետ Ուզբեկստանում 2024 թվականին։ Ամենայն հավանականությամբ, ռեկուրսիայի կիրառման ամենապարզ օրինակը թվերի գումարը ստանալն է 1 դեպի n. Իհարկե, դուք կարող եք օգտագործել հանգույց այս խնդիրը լուծելու համար: Բայց ռեկուրսիվ լուծումը մի փոքր ավելի կարճ կլինի և ցույց կտա գործիքի աշխատանքի սկզբունքը։
Նախ հայտարարենք ֆունկցիան Def rec_sum(n) և դնել երկու կետ: Հաջորդ տողում, որը նահանջված է 4 բացատով, մեկին ավելացրեք պայմանական օպերատոր և հավասարության թեստ. եթե n==1և 4 բացատների հավելյալ անցքերով - վերադարձ 1. Հաջորդ տողում, նույն մակարդակի վրա, ինչ պայմանական հայտարարությունը if — ավելացնել ռեկուրսիվ ալգորիթմ պարունակող տող. վերադարձնել n + rec_sum(n - 1).
Արդյունքում ֆունկցիան կկանչի իր ավելի ու ավելի նոր տարբերակներ՝ ամեն անգամ մեկով նվազեցնելով արգումենտը։ Մինչև այն կհասնի զրոյի, որտեղ ալգորիթմը կդադարի: Ավելին իմանալու համար խորհուրդ ենք տալիս գնալ DevOps / DevNet ինժեներական դասընթացներ Տաշքենդ հարթակում SEDICOMM.
Թիմ SEDICOMM համալսարան: Cisco ակադեմիա, Linux-ի մասնագիտական ինստիտուտ, Python ինստիտուտ.

