18 / 59

Python Functions

Funksiyalar bilan tanishish

Funksiya — muayyan vazifani bajaruvchi kod bloki.

Aytaylik, bizga doira chizib, uni bo'yaydigan dastur yaratish kerak. Biz bu muammoni yechish uchun ikkita funksiya yaratishimiz mumkin:

  • doira yaratuvchi funksiya
  • shaklni bo'yovchi funksiya

Murakkab muammoni kichikroq qismlarga bo'lish dasturimizni tushunish va qayta ishlatishni osonlashtiradi.

Funksiya yaratish

Keling, birinchi funksiyamizni yarataylik.

example.py
def greet():
    print('Hello World!')

Mana dasturning turli qismlari:

Python funksiyasini yaratish

Python funksiyasini yaratish

Bu yerda biz Hello World! deb chop etuvchi greet() nomli oddiy funksiya yaratdik.

Eslatma: Funksiya yozayotganda, kod qatori boshidagi bo'shliqlar bo'lgan chekinishga (indentation) e'tibor bering.

Yuqoridagi kodda, print() operatori funksiya tanasining bir qismi ekanligini ko'rsatish uchun chekingan holda yozilgan, bu esa funksiyaning e'lonini uning tanasidan ajratib turadi.

Funksiyani chaqirish

Yuqoridagi misolda biz greet() nomli funksiyani e'lon qildik.

example.py
def greet():
    print('Hello World!')

Agar yuqoridagi kodni ishga tushirsak, hech qanday natija olmaymiz.

Buning sababi, funksiya yaratish uning ichidagi kodni bajarayotganimizni anglatmaydi. Bu shuni anglatadiki, agar xohlasak foydalanishimiz uchun kod tayyor turibdi.

Bu funksiyadan foydalanish uchun, funksiyani chaqirishimiz kerak.

Funksiyani chaqirish

example.py
greet()

Misol: Python funksiyasini chaqirish

example.py
def greet():
    print('Hello World!')

# funksiyani chaqirish
greet()

print('Outside function')

Natija

kod
Hello World!
Outside function

Yuqoridagi misolda biz greet() nomli funksiya yaratdik. Mana dastur boshqaruvi qanday oqadi:

Python funksiyasining ishlashi

Python funksiyasining ishlashi

Bu yerda,

  1. greet() funksiyasi chaqirilganda, dasturning boshqaruvi funksiya e'loniga o'tadi.
  2. Funksiya ichidagi barcha kod bajariladi.
  3. Dastur boshqaruvi funksiya chaqiruvidan keyingi operatorga o'tadi.

Python funksiya argumentlari

Argumentlar — funksiyaga beriladigan kiritmalar (input).

example.py
def greet(name):
    print("Hello", name)

# argument uzatish
greet("John")

1-namuna natija

kod
Hello John

Bu yerda biz greet() funksiyasiga argument sifatida 'John'ni uzatdik.

Har bir chaqiruvda turli argumentlarni uzatishimiz mumkin, bu funksiyani qayta ishlatiladigan va dinamik qiladi.

Keling, funksiyani boshqa argument bilan chaqiramiz.

example.py
greet("David")

2-namuna natija

kod
Hello David

Misol: Ikkita sonni qo'shuvchi funksiya

example.py
# ikkita argumentga ega funksiya
def add_numbers(num1, num2):
    sum = num1 + num2
    print("Sum: ", sum)

# ikkita qiymat bilan funksiyani chaqirish
add_numbers(5, 4)

Natija

kod
Sum: 9

Yuqoridagi misolda biz num1 va num2 argumentlariga ega add_numbers() nomli funksiya yaratdik.

Argumentlarga ega Python funksiyasi

Argumentlarga ega Python funksiyasi

Parametrlar va argumentlar

Parametrlar

Parametrlar — funksiya e'lonida qavslar ichida sanab o'tilgan o'zgaruvchilar. Ular funksiya chaqirilganda qabul qila oladigan ma'lumot uchun joy egallovchi (placeholder) vazifasini bajaradi.

Parametrlarni funksiya qabul qilishni kutayotgan ma'lumot turini belgilaydigan chizma (blueprint) deb tasavvur qiling.

example.py
def print_age(age):  # age — parametr
    print(age)

Bu misolda print_age() funksiyasi ageni o'zining kiritmasi sifatida oladi. Biroq, bu bosqichda haqiqiy qiymat hali belgilanmagan.

age parametri shunchaki funksiya chaqirilganda beriladigan aniq qiymatni kutib turgan joy egallovchi.

Argumentlar

Argumentlar — funksiyani chaqirganimizda unga uzatadigan haqiqiy qiymatlar.

Funksiya bajarilganda argumentlar parametrlarning o'rnini egallaydi.

example.py
print_age(25)  # 25 — argument

Bu yerda, funksiya chaqirilganda, 25 argumenti funksiyaga uzatiladi.

Return operatori

Funksiyadan qiymatni return operatori yordamida qaytaramiz.

example.py
# funksiya e'loni
def find_square(num):
    result = num * num
    return result

# funksiyani chaqirish
square = find_square(3)

print('Square:', square)

Natija

kod
Square: 9

Yuqoridagi misolda biz find_square() nomli funksiya yaratdik. Funksiya sonni qabul qiladi va uning kvadratini qaytaradi.

Pythonda funksiyalarning ishlashi

Pythonda funksiyalarning ishlashi

Eslatma: return operatori shuningdek funksiya tugaganligini ham bildiradi. returndan keyingi hech qanday kod bajarilmaydi.

Pass operatori

pass operatori kelajakdagi kod uchun joy egallovchi vazifasini bajaradi, bo'sh kod bloklaridan kelib chiqadigan xatolarning oldini oladi.

U odatda kod rejalashtirilgan, ammo hali yozilmagan joyda ishlatiladi.

example.py
def future_function():
    pass

# bu hech qanday amal yoki xatoliksiz bajariladi
future_function()  

Eslatma: Ko'proq bilish uchun Python Pass Statement sahifasiga tashrif buyuring.

Python kutubxona funksiyalari

Python bizning dasturimizda to'g'ridan-to'g'ri ishlatilishi mumkin bo'lgan ba'zi tayyor (built-in) funksiyalarni taqdim etadi.

Bizga funksiyani yaratish shart emas, ularni shunchaki chaqirishimiz kifoya.

Ba'zi Python kutubxona funksiyalari:

  • print() - qo'shtirnoq ichidagi satrni chop etadi
  • sqrt() - sonning kvadrat ildizini qaytaradi
  • pow() - sonning darajasini qaytaradi

Bu kutubxona funksiyalari modul ichida belgilangan. Ulardan foydalanish uchun, dasturimiz ichiga modulni qo'shishimiz kerak.

Masalan, sqrt() math moduli ichida belgilangan.

Eslatma: Kutubxona funksiyalari haqida ko'proq bilish uchun, iltimos Python Library Functions sahifasiga tashrif buyuring.

Misol: Python kutubxona funksiyasi

example.py
import math

# sqrt kvadrat ildizni hisoblaydi
square_root = math.sqrt(4)

print("Square Root of 4 is",square_root)

# pow() darajani hisoblaydi
power = pow(2, 3)

print("2 to the power 3 is",power)

Natija

kod
Square Root of 4 is 2.0
2 to the power 3 is 8

Bu yerda biz sqrt() va pow() kutubxona funksiyalaridan foydalanish uchun math modulini import qildik.

Foydalanuvchi belgilagan funksiya va standart kutubxona funksiyasi

Pythonda funksiyalar ikki toifaga bo'linadi: foydalanuvchi belgilagan (user-defined) funksiyalar va standart kutubxona (standard library) funksiyalari. Bu ikkovi bir necha jihatdan farq qiladi:

Foydalanuvchi belgilagan funksiyalar

Bular biz o'zimiz yaratadigan funksiyalar. Ular o'zimiz mo'ljallagan muayyan vazifalar uchun mo'ljallangan o'z maxsus asboblarimizga o'xshaydi.

Ular Pythonning standart asboblar to'plamining bir qismi emas, bu esa bizga ularni o'z ehtiyojlarimizga aynan mos moslashtirishga, kodimizga shaxsiy uslub qo'shishga erkinlik beradi.

Standart kutubxona funksiyalari

Bularni Pythonning oldindan tayyorlangan sovg'alari deb tasavvur qiling. Ular Python bilan birga keladi, foydalanishga tayyor.

Bu funksiyalar matematika, fayl amallari, satrlar bilan ishlash kabi keng ko'lamdagi keng tarqalgan vazifalarni qamrab oladi.

Ular Python jamoasi tomonidan sinovdan o'tkazilgan, bu esa samaradorlik va ishonchlilikni ta'minlaydi.

Funksiyalarda standart argumentlar

Python funksiyalarga standart argument qiymatlariga ega bo'lish imkonini beradi. Standart argumentlar funksiya chaqirilganda bu parametrlarga aniq qiymat uzatilmagan holatlarda ishlatiladi.

Keling, bir misolga qaraymiz.

example.py
def greet(name, message="Hello"):
    print(message, name)

# funksiyani ikkala argument bilan chaqirish
greet("Alice", "Good Morning")

# funksiyani faqat bitta argument bilan chaqirish
greet("Bob")

Natija

kod
Good Morning Alice
Hello Bob

Bu yerda messagening standart qiymati Hello. greet() faqat bitta argument bilan chaqirilganda, message o'zining standart qiymatidan foydalanadi.

Eslatma: Funksiyadagi standart argumentlar haqida ko'proq bilish uchun, iltimos Python Function Arguments sahifasiga tashrif buyuring.

Funksiyalarda *args va **kwargs dan foydalanish

Biz *args va **kwargs maxsus belgilari yordamida ixtiyoriy sondagi argumentlarni boshqarishimiz mumkin.

*Funksiyalarda args

*args dan foydalanish funksiyaga istalgan sondagi pozitsion argumentlarni qabul qilish imkonini beradi.

example.py
# istalgan sondagi argumentlarni qo'shuvchi funksiya
def add_all(*numbers):
    return sum(numbers)

# istalgan sondagi argumentlarni uzatish
print(add_all(1, 2, 3, 4))   

Natija

kod
10

**Funksiyalarda kwargs

**kwargs dan foydalanish funksiyaga istalgan sondagi kalit so'zli (keyword) argumentlarni qabul qilish imkonini beradi.

example.py
# kalit so'zli argumentlarni chop etuvchi funksiya
def greet(**words):
    for key, value in words.items():
        print(f"{key}: {value}")

# istalgan sondagi kalit so'zli argumentlarni uzatish
greet(name="John", greeting="Hello")

Natija

kod
name: John
greeting: Hello

Ko'proq bilish uchun Python *args and **kwargs sahifasiga tashrif buyuring.

QBilimingizni sinab ko'ring
1 / 3

1. Funksiya e'lon qilingandan so'ng, uni ishga tushirish uchun nima qilish kerak?