4 BOB. Pythonda Funksiya va Modullar

4 - 1 Funksiyalar

Nazariy Ma'lumotlar:

Funksiya — bu qayta ishlatiladigan kod blokidir. Funksiyalar kodni modullarga ajratib, bir xil amallarni takror-takror yozish o‘rniga, ularni bir marta funksiya ichida yozib, turli joylarda chaqirishga imkon beradi. Pythonda funksiyalarni yaratish uchun def kalit so‘zidan foydalanamiz. Funksiyalar parametrlar qabul qilishi mumkin va natijani qaytaradi (return).

Funksiyani Yaratish:

Funksiya def kalit so‘zi bilan boshlanadi va so‘ngra funksiya nomi va qavslardagi parametrlar beriladi. Funksiya tanasida bajariladigan amallar kirgiziladi va return kalit so‘zi orqali natija qaytariladi.

def funksiya_nomi(parametr1, parametr2):
    natija = parametr1 + parametr2
    return natija

Bu yerda:

  • funksiya_nomi — funksiya nomi.

  • parametr1 va parametr2 — funksiyaga berilgan parametrlar.

  • return — natijani qaytarish uchun ishlatiladi.

Amaliy Misol 1: Oddiy Funksiya

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

# Funksiyani chaqirish
salom_ber("Ali")

Tushuntirish:

  • salom_ber funksiya sifatida yaratilgan va bir parametr (ism) oladi. Bu parametrni chaqirib, print orqali salomlashish amalga oshiriladi.

  • Natija: Salom, Ali!

Amaliy Misol 2: Qo‘shish Funksiyasi

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

# Funksiyani chaqirish
natija = qoshish(5, 10)
print(natija)

Tushuntirish:

  • Bu funksiya ikki parametr oladi va ularni qo‘shib natijani qaytaradi.

  • Natija: 15

Funksiyada Standart Parametrlar

Pythonda parametrlarning standart qiymatini belgilash orqali, agar foydalanuvchi qiymat bermasa, o‘zgaruvchining standart qiymatini ishlatishimiz mumkin.

def salom_ber(ism="Dunyo"):
    print(f"Salom, {ism} !")

# Funksiyani chaqirish
salom_ber()  # Standart qiymat ishlatiladi
salom_ber("Ali")  # Foydalanuvchi qiymatini kiritadi

Natija:

  • Salom, Dunyo !

  • Salom, Ali !

Amaliy Misol 3: Bir nechta parametrlar bilan ishlash

def hisobla(a, b, amal="qo'shish"):
    if amal == "qo'shish":
        return a + b
    elif amal == "ayirish":
        return a - b
    else:
        return "Noto'g'ri amal tanlandi."
#Kodni yaxshiroq tushunishga harakat qiling.Bu judaham muhim :) 
print(hisobla(5, 3))  # Standart amal - qo'shish
print(hisobla(5, 3, "ayirish"))  # Ayirish amalini ishlatish

Tushuntirish:

  • Funksiya a va b parametrlarini qabul qiladi va ularga "qo‘shish" yoki "ayirish" amallarini bajaradi.

  • Natija:

    • 8 (5+3)

    • 2 (5-3)

4 - 2 Lambda Funksiya

Nazariy Ma'lumotlar:

lambda funksiyalari — bu qisqa va bir martalik amallarni bajarish uchun ishlatiladigan funksiyalar. Ular odatdagi funksiyalar kabi def kalit so‘zini talab qilmaydi va faqat bitta ifodani o‘z ichiga oladi. lambda funksiyalar ko‘pincha oddiy, bir qatorli funksiyalarni yaratishda qulaydir.

Lambda Funktsiya Sintaksisi:

lambda argumentlar: ifoda

Amaliy Misol 1: Oddiy Lambda Funksiya

qoshish = lambda a, b: a + b
print(qoshish(5, 10))

Tushuntirish:

  • Bu yerda lambda funksiyasi ikki parametr (a va b) qabul qilib, ularni qo‘shadi va natijani qaytaradi.

  • Natija: 15

Amaliy Misol 2: Lambda Funksiya bilan hisoblash

def hisobla(a, b, funksiya):
    return funksiya(a, b)

# Lambda funksiyasi orqali ko'paytirish
natija = hisobla(5, 3, lambda x, y: x * y)
print(natija)

Tushuntirish:

  • Bu misolda lambda funksiyasi x * y amalini bajaradi va hisobla funksiyasiga argument sifatida beriladi.

  • Natija: 15

Amaliy Misol 3: Lambda va Sorted Funksiyasi

mevalar = [("Olma", 5), ("Banan", 2), ("Shaftoli", 4)]

# Mevalarni narx bo'yicha tartiblash
tartiblangan_mevalar = sorted(mevalar, key=lambda meva: meva[1])

print(tartiblangan_mevalar)

Tushuntirish:

  • sorted() funksiyasi yordamida mevalar narxlari bo‘yicha tartiblanadi.

  • Natija: [('Banan', 2), ('Shaftoli', 4), ('Olma', 5)]

4 - 3 Pythonda Modullardan Foydalanish

Nazariy Ma'lumotlar:

Modul — bu Python kodining bir yoki bir nechta funksiyalari va o‘zgaruvchilarini o‘z ichiga olgan fayl. Modullarni yaratish va ulardan foydalanish orqali kodni qayta ishlatish imkoniyati oshadi. Python juda ko‘p tayyor kutubxonalarni o‘z ichiga oladi, masalan, matematik hisob-kitoblar uchun math, tasodifiy sonlar bilan ishlash uchun random, va h.k.

Modulni Python'da ishlatish uchun import kalit so‘zidan foydalanamiz.

import modul_nomi

Amaliy Misol 1: Math Modulidan Foydalanish

import math

# Kvadrat ildiz
print(math.sqrt(16))

# Pi qiymati
print(math.pi)

Tushuntirish:

  • math.sqrt(16) funksiyasi sonning kvadrat ildizini qaytaradi.

  • Natija: 4.0

  • math.pi esa Pi ning aniq qiymatini beradi.

  • Natija: 3.141592653589793

Amaliy Misol 2: Faqat Kerakli Funksiyani Import Qilish

from math import sqrt

print(sqrt(25))

Tushuntirish:

  • Bu usulda faqat kerakli funksiyani import qilamiz.

  • Natija: 5.0

Amaliy Misol 3: O‘z Modulingizni Yaratish

Siz o‘z funksiyalar to‘plamingizni alohida modul sifatida saqlab, boshqa dasturlarda qayta ishlatishingiz mumkin. Modul — bu oddiy .py kengaytmali Python fayli.

Misol: "mening_modulim.py" fayli:

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

Asosiy fayl:

import mening_modulim

mening_modulim.salom_ber("Ali")

Tushuntirish:

  • Modulni yaratish orqali siz boshqa fayllarda kodni qayta ishlata olasiz.

  • Natija: Salom, Ali!

4 - 4 Pythonda Maxsus Modullar

Nazariy Ma'lumotlar:

Python’da bir qator maxsus modullar mavjud. Ushbu modullarni ishlatish orqali operatsion tizim bilan ishlash (os moduli), tasodifiy sonlar yaratish (random moduli), matematik amallar (math moduli), va vaqt va sana bilan ishlash (datetime moduli) kabi ko‘plab vazifalarni bajarishingiz mumkin.

Amaliy Misol 1: os Moduli Bilan Ishlash

import os

# Joriy ishchi katalogni ko'rsatadi
print(os.getcwd())

# Yangi katalog yaratish
os.mkdir("yangi_papka")

Tushuntirish:

  • os moduli orqali joriy katalogni ko‘rish va yangi katalog yaratish mumkin.

  • Natija: yangi_papka katalogi yaratiladi.

Amaliy Misol 2: random Moduli Bilan Ishlash

import random

# 1 va 10 orasida tasodifiy son yaratish
print(random.randint(1, 10))

Tushuntirish:

  • random.randint() funksiyasi belgilangan oralikda tasodifiy son qaytaradi.

  • Natija: Har safar yangi tasodifiy son chiqadi, masalan 7.

4 - 5 Sana va Vaqt (datetime moduli)

Nazariy Ma'lumotlar:

datetime moduli sana va vaqt bilan ishlash uchun mo‘ljallangan. Ushbu modul orqali joriy vaqtni olish, vaqtlar orasidagi farqni hisoblash va sanalarni formatlash mumkin.

Amaliy Misol 1: Hozirgi Sana va Vaqtni Olish

import datetime

# Hozirgi sana va vaqtni olish
hozirgi_vaqt = datetime.datetime.now()
print(hozirgi_vaqt)

Tushuntirish:

  • datetime.datetime.now() funksiyasi joriy sana va vaqtni qaytaradi.

  • Natija: 2024-10-23 12:34:56.789123 kabi vaqt chiqishi mumkin.

Amaliy Misol 2: Faqat Sana yoki Faqat Vaqtni Ko‘rsatish

import datetime

# Faqat sanani olish
hozirgi_sana = datetime.date.today()
print("Bugungi sana:", hozirgi_sana)

# Faqat vaqtni olish
hozirgi_vaqt = datetime.datetime.now().time()
print("Hozirgi vaqt:", hozirgi_vaqt)

Tushuntirish:

  • datetime.date.today() funksiyasi bugungi sanani, datetime.datetime.now().time() esa hozirgi vaqtni beradi.

  • Natija: Bugungi sana: 2024-10-23, Hozirgi vaqt: 12:34:56.789123

4 - 6 Pythonda Matematika

Nazariy Ma'lumotlar:

Python’da matematik amallarni bajarish uchun math moduli ishlatiladi. Bu modul kvadrat ildiz, logarifm, sinus va kosinus kabi matematik funksiyalarni o‘z ichiga oladi.

Amaliy Misol 1: Kvadrat Ildizni Hisoblash

import math

son = 16
natija = math.sqrt(son)
print(f"{son} ning kvadrat ildizi: {natija}")

Tushuntirish:

  • sqrt() funksiyasi sonning kvadrat ildizini hisoblaydi.

  • Natija: 16 ning kvadrat ildizi: 4.0

Amaliy Misol 2: Trigonometrik Funksiyalar

import math

burchak = 45
radian = math.radians(burchak)

sinus = math.sin(radian)
kosinus = math.cos(radian)

print(f"Sin(45°): {sinus}")
print(f"Cos(45°): {kosinus}")

Tushuntirish:

  • radians() funksiyasi burchakni radianlarga o‘tkazadi.

  • sin() va cos() funksiyalari trigonometrik qiymatlarni hisoblaydi.

  • Natija:

    • Sin(45°): 0.7071067811865475

    • Cos(45°): 0.7071067811865475

4 - 7 Pythonda Sanoq Sistemasining Ishlatilishi

Nazariy Ma'lumotlar:

Python’da turli sanoq tizimlari bilan ishlash uchun turli funksiyalar mavjud. Python’da ikkilik, sakkizlik va o‘n oltilik sanoq tizimlariga o‘tkazish imkoniyati mavjud.

Amaliy Misol 1: Ikkilik Sanoq Tizimiga O‘tkazish

son = 10
ikkilik = bin(son)
print(f"{son} ning ikkilikda ifodasi: {ikkilik}")

Tushuntirish:

  • bin() funksiyasi sonni ikkilik sanoq tizimiga o‘tkazadi.

Esingizda bulsa binar fayillar bilan ishlashda buni ko'rib o'tgan edik. Pythonda ham bu jarayon mavjud.

  • Natija: 10 ning ikkilikda ifodasi: 0b1010

Amaliy Misol 2: O‘n Oltilik Sanoq Tizimiga O‘tkazish

son = 255
on_oltilik = hex(son)
print(f"{son} ning o'n oltilikda ifodasi: {on_oltilik}")

Tushuntirish:

  • hex() funksiyasi sonni o‘n oltilik sanoq tizimiga o‘tkazadi.

  • Natija: 255 ning o'n oltilikda ifodasi: 0xff

Amaliy Misol 3: Sanoq Sistemasidan O‘nlikka O‘tkazish

ikkilik_son = "1010"
o‘nlik_son = int(ikkilik_son, 2)
print(f"{ikkilik_son} ning o'nlikda ifodasi: {o‘nlik_son}")

Tushuntirish:

  • int() funksiyasi yordamida sanoq tizimi ko‘rsatilgan holda string shaklidagi sonni o‘nlik tizimga o‘tkazish mumkin.

  • Natija: 1010 ning o'nlikda ifodasi: 10

Ushbu bobda Pythonda funksiyalar va modullar bilan ishlash haqida o‘rgandik. Funksiyalar yordamida kodni modular tarzda yozish, lambda funksiyalar bilan qisqa va aniq amallarni bajarish, hamda modullar orqali keng imkoniyatlarga ega bo‘ldik. Python kutubxonalari yordamida esa turli sohalarda keng qamrovli hisob-kitoblar va ishlarni bajarish osonlashadi.

Bizdan maslahatlar:

  • Funksiyalarni maksimal darajada ko‘p joylarda qayta foydalanishga harakat qiling.

  • Modullardan foydalangan holda kodingizni qisqa va tartibli saqlang.

Last updated