Энэ хичээлээр бид функцүүдийн талаар суралцах болно. Функц нь жор шиг компьютерт юу хийхийг зааж өгдөг жижиг заавар юм. Функцууд нь том асуудлыг жижиг хэсгүүдэд хуваахад тусалдаг. Тэд бидний ажлыг хөнгөвчлөх, хөтөлбөрийг илүү ойлгомжтой болгодог. Өнөөдөр бид функцууд гэж юу болох, яагаад тэдгээрийг ашигладаг, тэдгээр нь програм бүтээхэд бидэнд хэрхэн тусалдаг болохыг олж мэдэх болно.
Танд үргэлж ижил үүрэг гүйцэтгэдэг тоглоомын машин байна гэж төсөөлөөд үз дээ. Товчлуур дарахад машин дуу дуулдаг. Компьютерийн програмын функц ижил төстэй байдлаар ажилладаг. Энэ бол та дахин дахин ашиглах боломжтой зааварчилгаа юм. Та функцийг нэг удаа тодорхойлж, дараа нь ашиглах шаардлагатай үедээ залгаж болно. Энэ санаа нь програмуудыг ойлгоход хялбар, бүтээхэд илүү хурдан болгодог.
Өдөр тутмын амьдралдаа бид аливаа зүйлийг хийх алхамуудыг дагаж мөрддөг. Жишээлбэл, та шүдээ угаах эсвэл сэндвич хийхдээ энгийн алхмуудыг дарааллаар нь хийдэг. Функц нь эдгээр алхмуудтай адил юм. Та эдгээр ажлыг хэрхэн хийх талаар өөртөө сануулахын оронд алхмуудыг санаж эсвэл өөрт тохирсон товчлуурыг дар.
Функц нь тодорхой даалгаврыг гүйцэтгэдэг кодын нэртэй блок юм. Та үүнийг том программынхаа доторх мини програм гэж бодож болно. Функцууд нь нэг жижиг ажлыг гүйцэтгэхийн тулд бичигдсэн байдаг. Тэд тоо нэмж, хэн нэгэнтэй мэндчилж, эсвэл дэлгэцэн дээр зураг зурах боломжтой. Гол санаа нь функц дотор даалгаврын нарийн ширийн зүйлийг нуух явдал юм. Ингэснээр та даалгавар гүйцэтгэх шаардлагатай үед л функцийг нэрээр нь дуудах хэрэгтэй.
Жишээлбэл, энгийн функц нь гэрлийн унтраалга шиг харагдаж болно. Шилжүүлэгчийг эргүүлэхэд гэрэл асна. Үүнтэй адилаар та функцийг дуудах үед компьютер доторх үйлдлүүдийг гүйцэтгэдэг. Энэ нь таны ажлыг эмх цэгцтэй байлгаж, аливаа асуудлыг олж засварлахад хялбар болгоно.
Програмчлалд функцийг ашиглах олон сайн шалтгаан бий. Нэгдүгээрт, функцууд нь бидний ажлыг зохион байгуулахад тусалдаг. Бид нэг зааврыг олон удаа бичихийн оронд функцэд нэг удаа бичиж, шаардлагатай үед функцийг дууддаг. Энэ нь цаг хугацаа хэмнэж, алдаа гаргахаас сэргийлнэ. Хоёрдугаарт, функцууд нь кодыг дахин ашиглахад тусалдаг. Функц тодорхойлогдсоны дараа үүнийг манай программын олон хэсэгт ашиглаж болно. Гуравдугаарт, функцууд нь програмуудыг уншихад хялбар болгодог. Даалгаврыг жижиг функцүүдэд хуваах үед программ юу хийдгийг ойлгохын тулд функцүүдийн нэрийг харж болно.
Та том LEGO цайз барьж байна гэж төсөөлөөд үз дээ. Та бүх цайзыг барихын тулд жижиг блокуудыг ашигладаг. Жижиг блок бүр нь тодорхой ажил гүйцэтгэдэг функцтэй адил юм. Бүх блокуудыг нэгтгэх үед та бүрэн цайзтай болно. Үүнтэй адилаар бие даасан функцууд нь бүрэн програмыг бүрдүүлдэг.
Бид тусгай код ашиглан функцийг тодорхойлж болно. Олон програмчлалын хэлэнд бид компьютерт ямар нэгэн функц хийж буйг хэлэх түлхүүр үгийг ашигладаг. Програмчлалыг заахад ашигладаг түгээмэл хэл бол Python юм. Python хэл дээр бид функцийг эхлүүлэхийн тулд def үгийг ашигладаг. Энд энгийн жишээ байна:
Жишээ:
def say_hello(): print("Сайн уу, найз минь!")
Энэ жишээнд функцийг say_hello гэж нэрлэдэг. def гэдэг үг нь компьютерт бид функцийг тодорхойлж байгааг хэлдэг. Энэ функц нь нэг зүйлийг хийдэг: энэ нь дэлгэцэн дээр найрсаг мессеж хэвлэдэг.
Энэ функцийг тодорхойлсны дараа бид үүнийг дараа нь програмдаа ашиглаж болно. Үүнийг функцийг дуудах гэж нэрлэдэг. Компьютер дуудах бүрт функц доторх бүх алхмуудыг гүйцэтгэнэ.
Одоо бид функцүүдийн гурван энгийн жишээг авч үзэх болно. Тэдгээрийг ойлгоход хялбар бөгөөд үндсэн санааг сурахад бидэнд тусалдаг.
Эхний жишээнд бид хэн нэгнийг нэрээр нь угтах функцийг бий болгодог. Бид функцийг дуудах үед энэ нь найздаа сайн уу гэж хэлэх болно.
Код:
def greet(нэр): print("Сайн уу, " + нэр + "!") # "Алис" нэртэй функцийг дуудаж байна мэндлэх("Алис")
Алхам алхмаар тайлбар:
Хоёр дахь жишээнд бид хоёр тоог нэмдэг функц бичнэ. Энэ нь тоонуудыг нэгтгэдэг мини тооны машинтай адил юм.
Код:
def нэмэх_тоо (тоо1, тоо2): үр дүн = тоо1 + тоо2 print("Нийтлэл нь:", үр дүн) # 3 ба 5 дугаартай функцийг дуудаж байна нэмэх_тоо(3, 5)
Алхам алхмаар тайлбар:
Гурав дахь жишээн дээр бид тоог 2-оор үржүүлдэг функцийг үүсгэх болно. Энэ функц нь дараа нь ашиглах утгыг хэрхэн буцааж болохыг харуулдаг.
Код:
def үржүүлэх_хоёроор(x): шинэ_утга = x * 2 шинэ_утга буцаана # Функцийг дуудаж, үр дүнг хадгалах үр дүн = хоёроор үржүүлэх(4) print("4-ийг 2-оор үржүүлсэн нь", үр дүн)
Алхам алхмаар тайлбар:
Функцууд нь параметрээр дамжуулан гаднаас мэдээлэл хүлээн авах боломжтой. Параметр гэдэг нь функцийг дуудах үед өгөгдлийг хадгалдаг хувьсагч юм. Бидний жишээн дээр нэр , num1 , num2 болон x нь параметрүүд юм.
Зарим функцууд утгыг буцаана . Буцах утга нь функц нь ажлаа хийсний дараа буцааж өгдөг үр дүн юм. Жишээ 3-т, хоёроор_хоёроор үржүүлэх функц нь дараа нь хувьсагчид хадгалагдах утгыг буцаана.
Параметр болон буцаах утгыг ашиглах санаа нь функцийг уян хатан, хүчирхэг болгодог. Жорны орц найрлагыг өөрчлөх нь өөр өөр амтыг бий болгодог шиг та өөр өөр гаралт авахын тулд оролтыг өөрчилж болно.
Функцууд нь модульчлагдсан програмчлалын гол санаа юм. Модульчлагдсан програмчлал гэдэг нь том программыг жижиг, удирдах боломжтой хэсэг эсвэл модулиудад хуваахыг хэлнэ. Функц бүр нь нэг энгийн ажлыг гүйцэтгэдэг модультай адил юм. Бүх модулиуд хамтдаа ажиллахад тэд бүрэн програмыг бүрдүүлдэг.
Оньсого бүтээх талаар бод. Хэсэг бүр нь жижиг бөгөөд энгийн. Гэхдээ та бүх хэсгүүдийг нийлүүлбэл бүтэн дүр зургийг харж болно. Програмчлалын хувьд функцуудыг ашиглах нь нэг удаад нэг жижиг хэсэг дээр ажиллах боломжийг олгодог. Ингэснээр программ бүтээх, ойлгох, засахад илүү хялбар болно.
Модульчлагдсан програмчлал нь давталтыг багасгахад тусалдаг. Хэрэв таны програмын нэг хэсэг ижил ажлыг дахин дахин хийх шаардлагатай бол та түүнд зориулж функц бичнэ. Дараа нь танд энэ ажлыг хийх шаардлагатай болгонд ижил код бичихийн оронд зүгээр л функцийг дууддаг.
Энэ арга нь гутлын үдээсийг яаж уяхыг мэддэг туслахтай адил тул та шинэ гутал авах болгондоо үүнийг яаж хийхийг дахин сурах шаардлагагүй болно.
Функцийг өдөр тутмын үйл ажиллагаатай харьцуулцгаая. Та гэртээ олон ажил хийдэг гэж төсөөлөөд үз дээ. Таны ажлын нэг бол ургамлыг услах явдал юм. Бүх алхмуудыг тухай бүр бодохын оронд та "Ургамал усал" гэж санаж болно. Та ургамал дээр ажиллах бүрдээ өөрийн гэсэн функцийг ашиглаж байна.
Өөр нэг жишээ бол сэндвич хийх явдал юм. Эхлээд та хоёр зүсмэл талх ав. Дараа нь та цөцгийн тос, бяслаг, магадгүй нэг зүсмэл хиам нэмнэ. Эцэст нь та хоёр зүсмэлийг нийлүүлнэ. Алхам бүр нь функцын мөрүүд шиг ойлгомжтой бөгөөд энгийн. Алхам бүрийг дагаж мөрдвөл та алхам бүрийг эхнээс нь бодох шаардлагагүйгээр амттай сэндвич бүтээдэг.
Эдгээр өдөр тутмын жишээнүүд нь функцууд нь тодорхой, энгийн хэсгүүдэд хувааж олон ажлыг хийхэд тусалдаг болохыг харуулж байна.
Функцуудын талаар суралцаж эхлэхэд функц бүр нь нэр , хаалт доторх параметрүүдийн жагсаалт, дотор нь кодын блоктой байгааг анзаарах болно. Энэ нь энгийн форматаар иймэрхүү харагдаж болно:
Ерөнхий бүтэц:
def функцийн нэр (параметр1, параметр2, ...): # кодын блок шаардлагатай бол зарим_утга # буцаана
Энд function_name нь функцийн нэр юм. Параметрүүд нь функцийн ашигладаг оролтууд юм. Кодын блок нь функцийг гүйцэтгэх заавруудын багц юм. Эцэст нь буцах нь үр дүнг буцааж өгдөг.
Та заримдаа ямар ч параметргүй функцүүдийг харж болно. Функцид нэмэлт мэдээлэл хэрэггүй үед та хаалт бичдэг ч хоосон хэвээр байна. Үүний нэгэн адил олон функц нь мессеж хэвлэх зэрэг үйлдлүүдийг гүйцэтгэдэг бөгөөд ямар ч утгыг буцаадаггүй.
Функцийн зарим чухал шинж чанаруудыг санаж байх хэрэгтэй:
Эдгээр шинж чанаруудыг дагаснаар программистууд ойлгох, дибаг хийх, цаг хугацааны явцад сайжруулахад хялбар программуудыг бий болгож чадна. Тоглоомоо хайрцаг болгон ангилж өрөөгөө эмх цэгцтэй байлгахын адил функцууд нь хөтөлбөрүүдийг эмх цэгцтэй, эмх цэгцтэй байлгадаг.
Функцуудын санааг илүү тохь тухтай байлгахын хэрээр та хэд хэдэн өөрчлөлттэй тулгарч магадгүй юм. Заримдаа функцууд юу ч буцаадаггүй; тэд зөвхөн үйлдэл хийдэг. Бусад үед функцууд бусад функцуудыг дуудаж болно. Үүнийг үүрлэх функцууд эсвэл функцын найрлага гэж нэрлэдэг.
Жишээлбэл, функц өөр ажил хийж эхлэхээсээ өмнө мэндчилгээний функцийг дуудаж болно. Функцуудын энэхүү давхарга нь олон жижиг, энгийн ажлуудаас нарийн төвөгтэй програмуудыг бүтээх боломжийг танд олгоно.
Дараагийн шатанд та рекурсив функц зэрэг сэдвүүдийг судалж болно. Рекурсив функц нь өөрийгөө дууддаг функц юм. Хэдийгээр энэ санаа нь жаахан төвөгтэй мэт санагдаж байгаа ч энэ нь асуудлыг жижиг хэсгүүдэд хуваах өөр нэг арга юм. Одоохондоо функцууд нь ухаалаг, эмх цэгцтэй код бичихэд тусалдаг гэдгийг мэдэхэд хангалттай.
Функцууд алхам алхмаар хэрхэн ажилладагийг харуулсан хоёр илүү дэлгэрэнгүй жишээг харцгаая.
Жишээ 4: Тэгш тоо шалгах функц
def бол тэгш_(тоо): # Тоо тэгш эсэхийг шалгана уу Хэрэв тоо % 2 == 0 бол: Үнэнийг буцаана өөр: Худал буцаана # Функцийг ашиглан 6 дугаарыг шалгана уу үр дүн = тэгш_бол(6) хэвлэх("6 тэгш үү?", үр дүн)
Алхам алхмаар тайлбар:
Жишээ 5: Талбайн талбайг тооцоолох функц
def талбайн_талбай(хажуугийн_урт): # Талбайг томъёогоор тооцоолно: талбай = хажуугийн_урт * хажуугийн_урт талбай = хажуугийн_урт * хажуугийн_урт буцах талбай # Хажуугийн урт нь 5-тай квадратын талбайг тооцоолох функцийг ашиглана квадрат_талбай = квадратын_талбай(5) хэвлэх("Дөрвөлжин талбай нь", квадрат_талбай)
Алхам алхмаар тайлбар:
Жишээ 6: Хоёр тооны томыг тодорхойлох функц
def том_тоо(a, b): # Хоёр тоог харьцуулж, томыг нь буцаа хэрэв a > b: буцах а өөр: буцах b # Функцийг ашиглан 7-10-ын хоорондох том тоог олно хамгийн том = том_тоо(7, 10) print("Илүү их тоо", хамгийн том)
Алхам алхмаар тайлбар:
Функцууд нь модульчлагдсан байдлаар програм бүтээхэд тусалдаг хүчирхэг хэрэгсэл юм. Функцуудыг ашигласнаар та програмынхаа бие даан ажилладаг салангид хэсгүүдийг үүсгэж болно. Энэ нь хэрэв таны програмын аль нэг хэсэгт алдаа гарсан эсвэл сайжруулах шаардлагатай бол том хэмжээний код хайхын оронд зөвхөн нэг функцийг засах хэрэгтэй гэсэн үг юм.
Модульчлагдсан програмчлал нь LEGO блокоор бүтээхтэй адил юм. Блок бүр нь бие даасан бөгөөд өөр өөр бүтцийг бий болгохын тулд янз бүрийн аргаар холбогдож болно. Хэрэв нэг блок эвдэрсэн бол та шилтгээнийг бүхэлд нь сэргээн босгох шаардлагагүйгээр солих боломжтой. Функцуудын тусламжтайгаар таны програмын жижиг хэсэг бүрийг дангаар нь барьж, туршиж, засах боломжтой.
Програмчлалын ийм арга нь асуудлыг илүү сайн ойлгоход тусалдаг бөгөөд нарийн төвөгтэй ажлуудыг хөнгөвчлөхөд тусалдаг. Мөн асуудлыг хэрхэн логикоор бодож, алхам алхмаар шийдвэрлэх арга замыг зааж өгдөг.
Дүгнэж хэлэхэд функцууд нь програмчлалын салшгүй хэсэг юм. Тэд бидэнд цэвэр, ойлгомжтой, ойлгоход хялбар код бичих боломжийг олгодог. Функцуудыг ашигласнаар бид том асуудлуудыг жижиг, удирдах боломжтой ажлуудад хувааж шийдэж чадна. Найзтайгаа мэндлэх, тооцоо хийх, эсвэл тэгш тоо байгаа эсэхийг шалгах зэрэг функцууд нь програмыг энгийн бөгөөд хөгжилтэй болгоход тусалдаг.
Үргэлж санаж байгаарай: жижиг алхмуудыг ашиглан том ажил бүрийг хялбаршуулж болох бөгөөд эдгээр жижиг алхмууд нь таны програмын функцууд юм.
Үргэлжлүүлэн суралцаж, судалж, програмчлалыг хөгжилтэй өнгөрүүлээрэй. Функцууд нь бүтээлч, хэрэгтэй код бичих эхний алхам юм!