⬅️ Bosh sahifaga

📦Funksiyalar Python'da

Definition, Arguments va Return operatori

🚀Kirish va Funksiya Tushunchasi

Assalomu alaykum, yosh dasturchilar! 😊 Bugun biz Python’da funksiyalar haqida o‘rganamiz. Funksiya — bu ma’lum bir vazifani bajaradigan kod bloki bo‘lib, uni kerak bo‘lganda bir necha marta chaqirib ishlatish mumkin.

Funksiyalar dasturimizni tartibli va qayta ishlatiladigan qilishda juda muhim. Ularni def kalit so'zi yordamida aniqlaymiz.

Oddiy funksiya misoli

# Funksiyani aniqlash
def salom_ber():
    print("Assalomu alaykum!")

# Funksiyani chaqirish
salom_ber()

# Natija: Assalomu alaykum!

💡 Nima uchun funksiyalar kerak?

Funksiyalar DRY (Don't Repeat Yourself - O'zingni Takrorlama) tamoyiliga amal qilishga yordam beradi. Kodni qayta-qayta yozish o‘rniga uni bir joyda saqlab, kerakli joylarda chaqirish orqali vaqtdan yutamiz va xatoliklarni kamaytiramiz.

🎮 Interaktiv Demo: Funksiyani chaqiring

Quyidagi tugmani bosib, `salom_ber()` funksiyasini chaqiring va natijani ko'ring.

🎯 Mashq: Birinchi funksiyangiz

xayrli_tun() nomli funksiya yarating va u “Xayrli tun!” deb chiqarsin. Funksiyani 2 marta chaqiring.

def xayrli_tun():
    print("Xayrli tun!")

xayrli_tun()
xayrli_tun()

📥Argumentlar (Parametrlar)

Argumentlar funksiyaga tashqaridan ma’lumot uzatish imkonini beradi. Ular funksiya aniqlanayotganda qavslar ichida yoziladi.

Argumentli funksiya

def salom_ber(ism):
    print(f"Assalomu alaykum, {ism}!")

salom_ber("Ali")    # Natija: Assalomu alaykum, Ali!
salom_ber("Zilola") # Natija: Assalomu alaykum, Zilola!

Standart (Default) argumentlar

Agar argumentga standart qiymat berib qo'ysak, funksiyani chaqirganda o‘sha argumentni kiritmasak ham u xato bermaydi.

def salom_ber(ism="Mehmon"):
    print(f"Assalomu alaykum, {ism}!")

salom_ber()          # Natija: Assalomu alaykum, Mehmon!
salom_ber("Sardor")  # Natija: Assalomu alaykum, Sardor!

Noma'lum sonli argumentlar (*args)

Agar funksiyaga nechta argument berilishi oldindan noma'lum bo'lsa, *args dan foydalanamiz. Bu barcha argumentlarni bitta kortej (tuple) ichiga yig'ib beradi.

def yigindi(*sonlar):
    print(f"Kiritilgan sonlar: {sonlar}")
    print(f"Yig'indi: {sum(sonlar)}")

yigindi(1, 2, 3)       # Natija: Yig'indi: 6
yigindi(10, 20, 30, 40) # Natija: Yig'indi: 100

🎮 Interaktiv Demo: Argumentlar bilan ishlash

Ismingizni kiriting va funksiya siz bilan qanday salomlashishini ko'ring. Agar bo'sh qoldirsangiz, standart qiymat ishlatiladi.

📤return operatori

return operatori funksiyadan natija qaytarish uchun ishlatiladi. print() faqat ekranga chiqarsa, return qiymatni funksiyadan tashqariga olib chiqadi va uni biror o'zgaruvchiga saqlab, keyinchalik ishlatish imkonini beradi.

`print` vs `return`

Faqat `print` bilan

def yigindi_print(a, b):
    print(a + b)

natija = yigindi_print(3, 7) 
# Ekranga 10 chiqadi
print(natija) # natija: None

`return` bilan

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

natija = yigindi_return(3, 7)
print(natija) # natija: 10

`return`dan keyingi kod ishlamaydi

Funksiya return operatoriga duch kelishi bilan o'z ishini yakunlaydi. Undan keyingi kodlar bajarilmaydi.

def test_funksiya():
    print("Bu xabar chiqadi")
    return 42
    print("Bu xabar esa chiqmaydi!")

qiymat = test_funksiya() # Natija: Bu xabar chiqadi
print(qiymat)            # Natija: 42

🎮 Interaktiv Demo: `return` bilan ishlash

Ikkita son kiriting va ularning yig'indisini `return` qiluvchi funksiya natijasini ko'ring.

🏋️Amaliy mashqlar

Endi o‘rganganlarimizni amalda sinab ko‘ramiz! Quyidagi mashqlarni bajaring.

Mashq 1: Funksiya aniqlash

xayrli_kun() nomli funksiya yarating, u “Xayrli kun!” deb chiqarsin va uni 3 marta chaqiring.

def xayrli_kun():
    print("Xayrli kun!")

xayrli_kun()
xayrli_kun()
xayrli_kun()

Mashq 2: Argumentlar

ayirish(a, b) nomli funksiya yarating, u ikki sonni ayirib, natijani ekranga chiqarsin. Funksiyani (10, 4) va (20, 15) juftliklari uchun chaqiring.

def ayirish(a, b):
    print(f"{a} - {b} = {a - b}")

ayirish(10, 4)
ayirish(20, 15)

Mashq 3: `return` operatori

kopaytirish(a, b) nomli funksiya yarating, u ikki sonni ko‘paytirib, natijani `return` qilsin. Funksiyani (3, 4) va (5, 6) uchun chaqirib, natijalarni alohida o'zgaruvchilarga saqlang va ekranga chiqaring.

def kopaytirish(a, b):
    return a * b

natija1 = kopaytirish(3, 4)
natija2 = kopaytirish(5, 6)

print(f"Birinchi natija: {natija1}")
print(f"Ikkinchi natija: {natija2}")

🎉Xulosa va Uy Vazifasi

Ajoyib, yosh dasturchilar! Bugun biz Python’da funksiyalar bilan ishlashni o‘rgandik: funksiyalarni aniqlash (def), ularga ma'lumot uzatish (argumentlar) va ulardan natija qaytarishni (return) ko'rdik. Funksiyalar kodni tartibli qiladi va qayta ishlatish imkonini beradi.

📌 Asosiy xulosalar:

  • def funksiya_nomi(): Funksiya yaratish uchun asosiy sintaksis.
  • Argumentlar: Funksiyani yanada moslashuvchan va kuchli qiladi.
  • return: Funksiyadan qiymat qaytarish va uni dasturning boshqa qismlarida ishlatish uchun zarur.

📚 Uyga vazifa

  1. xush_kelibsiz() nomli funksiya yarating, u “Xush kelibsiz!” deb chiqarsin va uni 2 marta chaqiring.
  2. bolish(a, b) nomli funksiya yarating, u ikki sonni bo‘lib, natijani ekranga chiqarsin. Funksiyani (15, 3) va (20, 4) uchun chaqiring.
  3. daraja(son, daraja) nomli funksiya yarating, u sonni berilgan darajaga ko‘tarib, natijani return qilsin. Funksiyani (2, 3) va (5, 2) uchun chaqirib, natijalarni ekranga chiqaring.

Keyingi darsda esa Advanced Functions: *args va **kwargs kabi tushunchalarni o'rganamiz.

🤔Qayta ko'rib chiqish va Savollar

Ajoyib ish qildingiz! Endi o'rganganlarimizni mustahkamlab olamiz. Bugungi darsda nimalarni o‘rgandik?

🧐 Funksiyalar qanday aniqlanadi?

Funksiyalar Python'da def kalit so'zi, undan keyin funksiya nomi va qavslar () yordamida aniqlanadi.

🤨 Argumentlar nima uchun kerak?

Argumentlar funksiyaga tashqaridan turli xil ma'lumotlarni uzatish uchun kerak. Bu funksiyani bir necha xil holatlarda qayta ishlatish imkonini beradi.

🤓 `return` operatorining `print`dan farqi nima?

print() ma'lumotni shunchaki ekranga chiqaradi. return esa qiymatni funksiyadan "tashqariga" qaytaradi, bu qiymatni o'zgaruvchiga saqlab, dastur davomida ishlatish mumkin.

💬 Savollaringiz bormi?

Qandaydir tushunmovchiliklar qoldimi? Hozir muhokama qilish uchun ayni vaqti. Bemalol savollaringizni bering! 😊