Google Play badge

funktsiyalari va modulli dasturlash


Funktsiyalar va modulli dasturlash

Funktsiyalar va modulli dasturlash kompyuter dasturlashning muhim qismlari hisoblanadi. Ular bizga tushunarli va tushunarli dasturlarni yaratishga yordam beradi. Bu darsda oddiy til va kundalik misollar yordamida funksiyalar va modulli dasturlash nimani anglatishini tushuntirib beradi. Har bir kontseptsiya bosqichma-bosqich tushuntiriladi. Siz funksiyalar nima ekanligini, ularni nima uchun ishlatishimizni va ular bizning kodimizni qanday tartibga solishini va ular bilan ishlashni qiziqarli qilishini bilib olasiz. Shuningdek, biz modulli dasturlash qanday qilib katta muammoni kichikroq, boshqariladigan qismlarga ajratishini o'rganamiz.

Funktsiya nima?

Funktsiya bitta vazifani bajaradigan kichik mashinaga o'xshaydi. Dasturlashda funktsiya chaqirilganda ma'lum bir vazifani bajaradigan kod blokidir. Savdo mashinasi haqida o'ylab ko'ring. Pul qo'yganingizda, mashina sizga gazak beradi. Qadamlar (pul qo'yish, gazak tanlash va gazak olish) bu funktsiyaning barcha qismlari.

Funktsiya kirishni oladi, uni qayta ishlaydi va keyin chiqishni qaytaradi. Masalan, agar funktsiya ikkita raqam qo'shsa, u raqamlarni kirish sifatida qabul qiladi va yig'indini chiqish sifatida beradi. Ushbu g'oya san'atda yangi rang olish uchun ikkita rangni qanday aralashtirishga o'xshaydi. Kirishlar ranglar, chiqishlar esa yangi rangdir.

Funktsiyaning asosiy komponentlari

Har bir funktsiya bir nechta muhim qismlarga ega:

Misol uchun, salom deb nomlangan oddiy funksiya kirish sifatida nom olishi va samimiy salomlashishni qaytarishi mumkin. Funktsiyadagi qadamlar xuddi sendvich tayyorlash kabi ishlaydi: siz ingredientlarni tanlaysiz, ularni aralashtirasiz va keyin sendvichdan zavqlanasiz.

Misol: Salomlashish funktsiyasi

Keling, bir misolni ko'rib chiqaylik. Aytaylik, siz odamni nomi bilan kutib oladigan funktsiyani xohlaysiz. Funktsiya qanday ko'rinishi mumkin:

 def salom(ism):
    "Salom, " + nom + "!"
  

Ushbu funktsiyada:

Modulli dasturlash nima?

Modulli dasturlash katta muammoni kichikroq, yechish oson bo‘lgan qismlarga ajratishdir. Dasturning har bir qismi alohida modul yoki funksiya sifatida tuzilgan. Shunday qilib, dastur boshqotirmaga o'xshaydi, unda har bir qism butun rasmni shakllantirish uchun bir-biriga mos keladi.

Tasavvur qiling, siz LEGO qal'asini qurmoqchisiz. Bir vaqtning o'zida butun qal'ani qurish o'rniga, siz minoralar, devorlar va eshiklarni alohida qurasiz. Keyinchalik, siz to'liq qal'ani yaratish uchun ushbu qismlarga qo'shilasiz. Dasturlashda modulli dasturlash LEGO qismlari bilan qurishga o'xshaydi. Har bir qism (funktsiya yoki modul) o'z ishini bajaradi.

Funksiyalar va modulli dasturlashdan foydalanishning afzalliklari

Funktsiyalar va modulli dasturlashdan foydalanish uchun ko'p sabablar mavjud:

Ushbu g'oyalar dasturchilarga murakkab muammolarni hal qilishda va yirikroq loyihalarni sodda tarzda qurishda yordam beradi.

Funktsiyalarga ko'proq misollar

Bu erda sizga turli funktsiyalar va ularning qanday ishlashini ko'rsatadigan ko'proq misollar mavjud.

1-misol: Ikki raqamni qo'shish

Bu funksiya ikkita raqamni qo'shadi. Bu sehrli qutiga o'xshaydi, u ikkita raqamni oladi va sizga ularning summasini beradi.

Masalan, 3 va 2 ni qo'yish natijada 5 ni beradi. Quyidagi kodga qarang:

 def qo'shish (a, b):
    a + b qaytaring
  

Bu funksiya ikkita raqamni birlashtirish kerak bo'lganda yordam beradi. Ikki xil rangni aralashtirib, yangi rang hosil qilgandek, bu yerda siz ikkita raqamni aralashtirib, ularning umumiy miqdorini olasiz.

2-misol: Juft yoki toq sonlarni tekshirish

Bu funksiya raqamning toq yoki juft ekanligini bildiradi. Juft sonni 2 ga teng bo'lish mumkin, toq sonni esa bo'lmaydi.

Tasavvur qiling, sizda bir savat olma bor. Agar siz olmalarni juft-juft qilib qo'yishga harakat qilsangiz va bitta olma qoldirilgan bo'lsa, unda bu raqam toq bo'ladi. Funktsiya oddiy test kabi ishlaydi:

 def check_number(son):
    agar son % 2 == 0 bo'lsa:
        "juft" ni qaytarish
    boshqa:
        "g'alati" ni qaytarish
  

Raqamni kiritganingizda, funksiya modul operatori yordamida tekshirishni amalga oshiradi (bo'lingandan keyin qolgan qismini topadi). Agar 2 ga bo'linganda qoldiq nolga teng bo'lsa, u "juft" ni qaytaradi; aks holda, u "g'alati" ni qaytaradi.

3-misol: Salomlashish funksiyasi

Bu funksiya kirish sifatida nom oladi va moslashtirilgan salomni qaytaradi. Misol uchun, agar siz "Elis" ismini qo'ysangiz, natijada "Salom, Elis!"

 def create_greeting(ism):
    "Salom, " + nom + "!"
  

Ushbu oddiy misol funksiyalardan do'stona xabarlarni yaratish uchun qanday foydalanish mumkinligini ko'rsatadi. Har bir funktsiya chaqiruvi xuddi eshik qo'ng'irog'ini chalish va iliq kutib olish kabi ishlaydi.

Dasturda funktsiyalarni birlashtirish

Modulli dasturlashda siz ko'pincha boshqa funktsiyalar ichidagi funktsiyalardan foydalanasiz. Bu "funktsiya tarkibi" deb ataladi. Bu turli xil ingredientlardan foydalangan holda sendvich qurishga o'xshaydi.

To'liq ovqatlanishni yaratadigan dasturni ko'rib chiqing. Sizda salat va sendvich tayyorlash uchun alohida funksiyalar bo'lishi mumkin. Keyin, boshqa funktsiya bu funktsiyalarni to'liq ovqatlanish uchun chaqiradi.

 def make_salad():
    "Yangi salat" ni qaytarish

def make_sandwich():
    "Mazali sendvich" ni qaytarish

def make_meal():
    salat = make_salad()
    sendvich = make_sandwich()
    qaytib salat + "" bilan + sendvich
  

make_salad va make_sandwich kichik funksiyalarini birlashtirib, make_meal funksiyasi to'liq xabar beradi. Agar siz sendvich retseptini o'zgartirishingiz kerak bo'lsa, siz butun taom kodini emas, faqat make_sandwich funksiyasini o'zgartirasiz.

Katta muammolarni kichikroq qismlarga ajratish

Katta muammoga duch kelganingizda, uni qismlarga bo'lish orqali hal qilish osonroq bo'ladi. Har bir kichik qismni funktsiya yordamida hal qilish mumkin. Bu modulli dasturlashning asosiy g'oyasi.

Tasavvur qiling, sizda juda tartibsiz xona bor. Hammasini bir vaqtning o'zida tozalash o'rniga, siz reja tuzishingiz mumkin:

Har bir qadam oddiy va oson. Barcha bosqichlarni tugatsangiz, xonangiz toza bo'ladi. Dasturlashda har bir qadam funksiya tomonidan boshqariladi. Bu muammoni hal qilishni ancha osonlashtiradi.

O'z modulingizni yaratish

Modul - bu bir nechta funktsiyalarni o'z ichiga olgan fayl. Modul yaratganingizda, kodingizni qayta foydalanish mumkin va tartibli qilasiz. Misol uchun, siz asosiy arifmetika uchun funktsiyalarni o'z ichiga olgan math_tools deb nomlangan modul yaratishingiz mumkin.

Math_tools da siz qo'shish , ayirish , ko'paytirish va bo'lish kabi funksiyalarga ega bo'lishingiz mumkin. Keyin, kodni qayta yozmasdan math_tools-dan turli xil dasturlarda foydalanishingiz mumkin.

 # Bu math_tools.py nomli modulga misol

def qo'shish (a, b):
    a + b qaytaring

def ayirish (a, b):
    a - b qaytish

def ko'paytiring (a, b):
    a * b qaytaring

def bo'lish (a, b):
    agar b != 0:
        a / b qaytaring
    boshqa:
        qaytish "Nolga bo'linib bo'lmaydi!"
  

Ushbu modulni dasturingizga import qilish orqali siz istalgan vaqtda funksiyalarni chaqirishingiz mumkin. Bu vaqtni tejaydi va ishingizni toza qiladi.

Bir nechta funksiyalar bilan ishlash

Bir nechta funksiyalardan birgalikda foydalansangiz, u kattaroq dasturlarni yaratishga yordam beradi. Har bir funktsiya jamoadagi ishchilar kabi mustaqil ishlaydi. Agar bitta ishchi yaxshi ishlamasa, siz bu qismni butun jamoaga ta'sir qilmasdan almashtirishingiz mumkin.

Masalan, oddiy o'yinda move_player , check_collision va update_score kabi funksiyalar bo'lishi mumkin. Har bir funktsiya bitta vazifa uchun javobgardir. Birgalikda ular o'yinni muammosiz ishlaydi.

Funktsiyalar uchun yaxshi nomlarni qanday tanlash mumkin

Funktsiyalar uchun aniq va oddiy nomlarni tanlash juda muhimdir. Yaxshi nom sizga funksiya nima qilishini aytadi. Account_total nomli funktsiyani ko'rganingizda, u qiymatlarni qo'shishini darhol bilasiz. Oddiy va tushunarli nomlar kodni o'qish, tushunish va foydalanishni osonlashtiradi.

Uzoq yoki chalkash ismlardan saqlaning. Funktsiya bajaradigan vazifaga bevosita aloqador so'zlardan foydalaning. Bu odat hatto yangi dasturchilarga ham har bir funksiya nima qilishini tushunishga yordam beradi.

Funktsiyalarda xatoliklarni bartaraf etish

Ba'zida funktsiyalar nolga bo'linish kabi muammolarga duch kelishi mumkin. Ushbu xatolarni ehtiyotkorlik bilan hal qilish juda muhimdir. Ko'pgina funktsiyalar bunday xatolarni tekshiradi va biror narsa noto'g'ri bo'lsa, foydali xabar beradi.

Masalan, bo'linish funksiyamizda biz quyidagilarni ko'ramiz:

 def bo'lish (a, b):
    agar b != 0:
        a / b qaytaring
    boshqa:
        qaytish "Nolga bo'linib bo'lmaydi!"
  

Bu kod b nol ekanligini tekshiradi. Agar shunday bo'lsa, funktsiya nolga bo'linmasligingizni aytadi. Bu dasturning ishdan chiqishini oldini oladi va nima noto'g'ri bo'lganini tushunishga yordam beradi.

Parametrlar va argumentlar bilan ishlash

Parametrlar funksiya ichidagi joy egalaridir. Funktsiyani chaqirganingizda, siz argumentlar deb ataladigan qiymatlarni o'tkazasiz. Masalan, add(a, b) funksiyasida a va b parametrlardir. Funksiyani add(10, 5) bilan chaqirganingizda, 10 va 5 qiymatlari argumentlarga aylanadi.

Bu usul funksiyani moslashuvchan qiladi. Funktsiyani har safar chaqirganingizda turli argumentlardan foydalanishingiz mumkin. Bu retseptga o'xshaydi. Salatda turli xil mevalardan foydalansangiz ham, qadamlar bir xil bo'lib qoladi va siz baribir mazali salat olasiz.

Funksiyalar va modulli dasturlashning real dunyo ilovalari

Ko'pgina kundalik texnologiyalar funktsiyalarga va modulli dasturlashga tayanadi. Haqiqiy hayotdan bir nechta misollar:

Modulli dasturlash moslashuvchan va oson yangilanadigan tizimlarni yaratishga yordam beradi. Bir qismni o'zgartirish yoki tuzatish kerak bo'lganda, faqat tegishli modul o'rnatiladi. Shunday qilib, umumiy tizim muammosiz ishlashda davom etadi.

Funksiyalar bilan ishlashda keng tarqalgan xatolar

Funktsiyalarni yozishda yangi dasturchilar yo'l qo'yishi mumkin bo'lgan bir nechta keng tarqalgan xatolar mavjud. Bularni bilib, ulardan qochishingiz mumkin:

Ushbu xatolardan qochib, siz toza va samaraliroq kod yozishingiz mumkin. Bu sizning dasturlaringizni saqlash va tushunishni osonlashtiradi.

Funktsiyalar va modullar o'rtasidagi munosabatni tushunish

Funktsiyalar modullarning qurilish bloklari. Modul ko'plab funktsiyalarni o'z ichiga olgan asboblar qutisiga o'xshaydi. Xuddi shunga o'xshash vositalarni birga saqlaganingizdek, modulda tegishli funktsiyalarni guruhlaysiz. Shunday qilib, muayyan vazifani bajarish kerak bo'lganda, siz qaerga qarashni aniq bilasiz.

Masalan, sizda matematik operatsiyalar uchun modul, satrlarni qayta ishlash uchun modul va sanalar bilan ishlash uchun boshqa modul bo'lishi mumkin. Har bir modul o'z sohasiga tegishli funktsiyalarni tashkil qiladi. Loyihalar kattalashganda ushbu tuzilma juda foydali.

Modulli dasturlash haqida qanday fikr yuritish kerak

Dasturlashda katta muammoga duch kelganingizda, eng yaxshi yondashuv uni kichikroq muammolarga ajratishdir. Har bir kichik muammoni funktsiyani yozish orqali hal qilish mumkin. Barcha kichik qismlar echilgandan so'ng, ular to'liq yechim hosil qilish uchun birlashtiriladi.

Ushbu yondashuv jumboqni echishga o'xshaydi. Siz qismlardan boshlaysiz va keyin to'liq rasmni ko'rish uchun ularni birma-bir ulaysiz. Har bir kichik qismning to'g'ri ishlashini bilish yakuniy natijani kuchli va ishonchli qiladi.

O'z funksiyalaringizni yaratish bo'yicha maslahatlar

Funktsiyalaringizni yozishda ba'zi oddiy maslahatlar:

Ushbu maslahatlardan foydalanib, siz ko'plab loyihalarda qayta ishlatilishi mumkin bo'lgan kuchli va tushunarli funktsiyalarni yaratishingiz mumkin.

Dasturda funksiyalardan foydalanishning bosqichma-bosqich jarayoni

Keling, dasturda funktsiyalarni yozish va ulardan foydalanishning oddiy bosqichma-bosqich jarayonini ko'rib chiqamiz:

  1. 1-qadam: Bajarilishi kerak bo'lgan kichik vazifani aniqlang. Masalan, ikkita raqamni qo'shish.
  2. 2-qadam: Vazifani bajaradigan funktsiyani yozing. Aniq nomlar va parametrlardan foydalaning.
  3. 3-qadam: Funktsiyani turli xil kirishlar bilan sinab ko'ring. Funktsiya kutilganidek ishlashiga ishonch hosil qiling.
  4. 4-qadam: Vazifani bajarish kerak bo'lganda, asosiy dasturingizdan funktsiyani chaqiring. Bu sizning asosiy dasturingizni sodda va tartibli qiladi.

Bu jarayon dasturlarni modulli tarzda yaratishga yordam beradi. Har bir kichik qism funksiya tomonidan bajariladi va barcha qismlar yakuniy dastur uchun birlashadi.

Asosiy fikrlarni ko'rib chiqish va xulosa qilish

Keling, ushbu darsning asosiy g'oyalarini ko'rib chiqaylik:

Ushbu dars funksiyalar va modulli dasturlashdan foydalanish kodlash hayotingizni qanday sodda va qiziqarli qilishini ko'rsatdi. Har bir funktsiya katta loyihaning bir qismini yakunlaydigan yordamchi vositaga o'xshaydi. Ushbu vositalarni birlashtirganingizda, siz toza, tartibli va tushunarli dasturlarni yaratasiz.

Esingizda bo'lsin, yaxshi dasturlashning kaliti muammolarni kichik, boshqariladigan qismlarga ajratishdir. Raqamlar qo'shsangiz, salomlashasizmi yoki o'yin qurasizmi, funksiyalar buni bosqichma-bosqich bajarishga yordam beradi. Modulli dasturlash - bu oddiy, tushunarli qismlardan foydalangan holda murakkab tizimlarni yaratishga imkon beruvchi strategiya.

Funksiyalarni yozish va kodingizni modullarga joylashtirishni mashq qilsangiz, muammolarni hal qilishda yaxshilanasiz. Siz yozgan har bir kichik funktsiya kattaroq va ta'sirchan dasturlarni yaratish yo'lidagi qadamdir. Har qanday qiziqarli jumboq yoki qurilish to'plamida bo'lgani kabi, kodingizni sinab ko'ring, sinab ko'ring va takomillashtirishda davom eting!

Download Primer to continue