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)) # Truereturn 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 # 50return 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) # NameErrorTashqi 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
| ✓ | Kod | Masala | Qiyinlik |
|---|---|---|---|
| B101 | Tub son | O‘rta | |
| PY11-1 | Tub sonmi? | Boshlang‘ich | |
| PY11-10 | Yilning nechanchi kuni | Oson | |
| PY11-11 | 12 soatlik format | Oson | |
| PY11-12 | Rim raqamlari | O‘rta | |
| PY11-13 | Sanoq sistemalari | O‘rta | |
| PY11-14 | Butun kub ildiz | O‘rta | |
| PY11-15 | Kalkulyator | Qiyin | |
| PY11-2 | EKUB va EKUK | Oson | |
| PY11-3 | Raqamli ildiz | Boshlang‘ich | |
| PY11-4 | Shahar ko‘chalari bo‘ylab | Boshlang‘ich | |
| PY11-5 | Kvadrat tenglama | Boshlang‘ich | |
| PY11-6 | Kasrni qisqartirish | Oson | |
| PY11-7 | Palindrom sonlar | Oson | |
| PY11-8 | Armstrong sonlari | Oson | |
| PY11-9 | Egizak tub sonlar | Oson |