22-dars. Python 2.7 da funksiya nima

Ushbu qo’llanmada biz funktsiyalar haqida bilib olamiz.

Python-dagi funksiyalar, boshqa dasturlash tillarida bo’lgani kabi, ba’zi amallarni bajaradigan va dasturning istalgan qismiga o’rnatilishi mumkin bo’lgan kod qismidir. Funktsiya o’zgaruvchiga biroz o’xshaydi – avval dasturchi funktsiya kodini yozadi, so’ngra dasturning ma’lum joylarida uni chaqirishi mumkin (yoki “funktsiyani bajarish” yoki ular “funktsiyadan foydalanish” deb ham aytishadi) shunchaki uning nomini kiritish.

Ilgari biz Pythonda funksiyalar bilan tanishgan edik. Masalan, print ()bu funksiya. Faqat uning dastur kodi Python tilining o’zida yozilgan. Va dasturchi ushbu funktsiyani istalgan qulay vaqtda uning nomini ko’rsatish orqali chaqiradi – print ().

Har qanday dasturchi o’zining kod bo’limlarini yaratishi mumkin va shu bilan o’zining yoki foydalanuvchi tomonidan belgilangan funksiyani yaratishi mumkin.

Python 2.7 da o’z funksiyangizni qanday yaratish mumkin?

  1. Maxsus jamoa bor def. Dasturchilar undan maxsus funksiyalarni yaratish uchun foydalanadilar. Buning uchun siz yozishingiz kerakdef nazvanie_funktii ():
  2. Funktsiya nomi lotin tilida yozilishi kerak, siz raqam bilan boshlay olmaysiz.
  3. Agar sarlavhada ikkita so’z bo’lsa, ular pastki chiziq bilan bog’lanadi.
  4. Argumentlar yoki parametrlar qavs ichida ko’rsatilgan. Bu funksiya ishlaydigan ma’lumotlar.
  5. Qator oxiriga qo’shtirnoq qo’yamiz.
  6. Funktsiyaning o’zi keyingi qatorga yozilishi kerak, chap tomonda 4 bo’sh joy qoldiriladi.
  7. Dasturchilar buni aytadilar: argumentlar uzatiladi va funktsiya ularni qabul qiladi. 

Case Study

Ish stolida fayl yaratamiz test18.pyva unga quyidagi dastur kodini yozamiz:

# -*- kodlash: utf- 8 -*-

def funktia1(*argumentlar):
    klub1, klub2 = argumentlar
    print "klub1: %r, klub2: %r" % (klub1, klub2)
	
funktia1("Spartak", "Dinamo")

Kodning qisqacha tushuntirishi

Kodimizning boshida biz buyruq yozamiz def, shuning uchun Python o’z funksiyamizni yozmoqchi ekanligimizni biladi. Biz bu funktsiyani nomi bilan chaqiramiz funktia1. Funktsiya nomining qavslar ichida biz ushbu funktsiyani tavsiflovchi har qanday argumentlardan foydalanishimizni yozamiz – (*arguments). Bu erda “yulduzcha” shunchaki “har qanday argumentlar” degan ma’noni anglatadi.

Keyinchalik, biz argumentlarni o’zlari yozamiz, faqat biz ularni o’zgaruvchilar shaklida yozamiz – klub1, klub2 . 

Keyingi – bu dalillarni chop etish.

Kodning eng pastki qismida biz funktsiyani chaqiramiz. Ya’ni, biz ushbu funktsiyaning nomini kiritamiz va argumentlarning nomlarini qavslar ichida ko’rsatamiz (bu holda, “Spartak” va “Dinamo” sport klublari).

Asosiy xato

Python bizga ko’pincha dasturni bajarish xatosini beradi:IdentationError: unexpected indent

Bu xato, funktsiya kodini yozishda biz 4 bo’sh joyni cheklamaganimizni, shunchaki enter tugmasini bosganimizni anglatadi. Diqqat: kursorni satrning boshiga qo’yib, 4 marta bo’sh joy bilan chekinishingiz kerak va shundan keyingina funktsiya kodini chop etishingiz kerak. Shuningdek, siz Notepad++ sozlamalariga kirib, qatorlar uchun TAB opsiyasini o‘chirib qo‘yishingiz mumkin. Ya’ni, enter tugmasini bosganingizda kursor o’ta chap holatiga qaytadi va oldingi satr darajasiga o’tmaydi.

Bu kod biz ilgari ko’rib chiqqan argv funksiyasini bajarishga biroz o’xshaydi BU YERDA va BU YERDA.

Endi PowerShell dasturini oching va buyruqni kiriting:python desktop/test18.py

Oxir-oqibat, siz rasmdagi kabi natija olishingiz kerak.

Funktsiya o’rtasidagi asosiy farqni ko’ryapsizmi? Biz faqat funktsiya nomini va argumentlar nomini yozdik va Python bizga o’zgaruvchilar va argumentlar nomlaridan foydalangan holda to’liq matnni berdi. 


Uy vazifasi

1. Argument belgisini yulduzchadan sanab o’tishga harakat qilib ko’ring va nima sodir bo’lishini ko’ring. Masalan, bu kabi: 

def funktia4(klub1, klub2, klub3):
    print "klub1: %r, klub2: %r, klub3: %r" % (klub1, klub2, klub3)
	
funktia4("Spartak", "Dinamo", "Avangard")

2. Funksiyadagi argumentlar sonini o‘zgartirib ko‘ring. Masalan, faqat bitta argument yozing, masalan:

def funktia3(club1):
    chop etish "klub1: %r" % (klub1)
	
funktia3 ("Spartak")

3. Hech qanday dalilsiz sinab ko’ring, nima bo’lishini ko’ring, bu erda kabi.

def funktia2():
    u "Argumentlar yo'q" deb chop eting

funktia2()

4. Funktsiya nomini va argumentlar nomini o’zgartirishga harakat qiling.

Keyingi darsda biz o’zgaruvchilarni funktsiya bilan bog’lashga harakat qilamiz: keyingi darsga o’ting .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *