Asosiy qismga o‘tish

11. Funksiyalar

Nazariya

Funksiya

Funksiya — nom berilgan kod bo‘lagi. U bitta ishni bajaradi va
natijani return bilan qaytaradi:

def tub_mi(n):
    if n < 2:
        return False
    d = 2
    while d * d <= n:
        if n % d == 0:
            return False
        d += 1
    return True

print(tub_mi(7))     # True

return va print farqi

Bu boshlang‘ich bosqichdagi eng muhim chalkashlik:

  • print — ekranga ko‘rsatadi;
  • return — qiymatni qaytaradi, uni keyin ishlatish mumkin.
def qoshuv(a, b):
    print(a + b)      # natijani ishlatib bo‘lmaydi

def qoshuv2(a, b):
    return a + b

x = qoshuv2(2, 3) * 10    # 50

return bajarilgan zahoti funksiya tugaydi — undan keyingi qatorlar
ishlamaydi.

Parametrlar

def salom(ism, matn="Salom"):
    return f"{matn}, {ism}!"

salom("Aziz")                  # Salom, Aziz!
salom("Aziz", "Xayrli tong")   # Xayrli tong, Aziz!

Ko‘lam (scope)

Funksiya ichida yaratilgan o‘zgaruvchi faqat o‘sha yerda yashaydi:

def f():
    x = 5      # bu ichki x
print(x)       # NameError

Tashqi o‘zgaruvchini o‘qish mumkin, lekin o‘zgartirish uchun uni
parametr qilib berish yoki natijani qaytarish to‘g‘riroq — global
o‘zgaruvchiga tayanish kodni chalkashtiradi.

Nega funksiya kerak

Bitta uzun main o‘rniga kichik funksiyalar: har birini alohida
tekshirish oson, nomi kodni tushuntiradi va takroriy kod yo‘qoladi.

Misol

def tub_mi(n):
    if n < 2:
        return False
    d = 2
    while d * d <= n:
        if n % d == 0:
            return False
        d += 1
    return True

print('ha' if tub_mi(int(input())) else 'yoq')

Mashq masalalari

Nazorat savollari

1 `return` nima qiladi? Bitta to‘g‘ri javob
2 Nima chiqadi? Kod nima chiqaradi
def f(a, b):
    return a + b

print(f(2, 3) * 10)
3 Nima chiqadi? Kod nima chiqaradi
def f(x):
    return x
    print('salom')

print(f(1))
4 Funksiya ichida yaratilgan o‘zgaruvchini tashqarida ishlatsa nima bo‘ladi? Bitta to‘g‘ri javob
5 `return` yozilmagan funksiya `None` qaytaradi. To‘g‘ri yoki noto‘g‘ri
6 Funksiya e’lon qilish uchun qaysi kalit so‘z yoziladi? Bo‘sh joyni to‘ldirish
____ yigindi(a, b):
    return a + b
7 Funksiyalarga bo‘lishning foydalari qaysilar? Bir nechta to‘g‘ri javob

Bir nechta javob to‘g‘ri bo‘lishi mumkin.

8 Nima chiqadi? Kod nima chiqaradi
def salom(ism, matn='Salom'):
    return matn + ', ' + ism

print(salom('Aziz'))
9 Quyidagi funksiya nimani qaytaradi: `def f(): pass` — `f()` ning qiymati? Qisqa javob — yoziladi
10 Qaysi holatda funksiya `print` emas, `return` ishlatishi kerak? Bitta to‘g‘ri javob

Javoblar serverda tekshiriladi. Katta-kichik harf, apostrof shakli va ortiqcha bo‘shliq ahamiyatsiz.