4. Operatorlar va shartlar

Dastur ko‘pincha biror qaror qabul qilishi kerak bo‘ladi.

Masalan:

Agar foydalanuvchi 18 yoshdan katta bo‘lsa → ruxsat berish.
Aks holda → rad etish.

Python'da bunday qarorlar operatorlar va shartli konstruksiyalar yordamida yoziladi.


Arifmetik operatorlar

Python'da asosiy arifmetik operatorlar:

+     qo‘shish
-     ayirish
*     ko‘paytirish
/     bo‘lish
//    butun bo‘lish
%     qoldiq
**    daraja

Misol:

birinchi_son = 20
ikkinchi_son = 6

print(
    birinchi_son + ikkinchi_son
)

print(
    birinchi_son - ikkinchi_son
)

print(
    birinchi_son * ikkinchi_son
)

print(
    birinchi_son / ikkinchi_son
)

print(
    birinchi_son // ikkinchi_son
)

print(
    birinchi_son % ikkinchi_son
)

print(
    birinchi_son ** 2
)

Taqqoslash operatorlari

Ikki qiymatni solishtirish uchun quyidagi operatorlar ishlatiladi:

==    teng
!=    teng emas
>     katta
<     kichik
>=    katta yoki teng
<=    kichik yoki teng

Natija doimo:

True

yoki:

False

bo‘ladi.


==

Ikki qiymat tengligini tekshirish:

birinchi_son = 10
ikkinchi_son = 10

natija = (
    birinchi_son == ikkinchi_son
)

print(
    natija
)

Natija:

True

!=

Qiymatlar teng emasligini tekshirish:

birinchi_son = 10
ikkinchi_son = 20

print(
    birinchi_son != ikkinchi_son
)

Natija:

True

Katta va kichik

birinchi_son = 20
ikkinchi_son = 10

print(
    birinchi_son > ikkinchi_son
)

print(
    birinchi_son < ikkinchi_son
)

Natija:

True
False

>= va <=

yosh = 18

print(
    yosh >= 18
)

print(
    yosh <= 18
)

Natija:

True
True

Mantiqiy operatorlar

Python'da uchta asosiy mantiqiy operator mavjud:

and
or
not

Ular bir nechta shartni birlashtirish uchun ishlatiladi.


and

and operatorida barcha shartlar True bo‘lishi kerak.

yosh = 25
hujjat_bor = True

if yosh >= 18 and hujjat_bor:

    print(
        "Kirishga ruxsat berildi."
    )

Bu yerda ikkala shart ham bajarilgan:

yosh >= 18 → True
hujjat_bor → True

Shuning uchun natija:

Kirishga ruxsat berildi.

or

or operatorida kamida bitta shart True bo‘lsa yetarli.

administrator = False
moderator = True

if administrator or moderator:

    print(
        "Boshqaruv paneliga kirish mumkin."
    )

Natija:

Boshqaruv paneliga kirish mumkin.

not

not qiymatni teskarisiga aylantiradi.

faol = False

if not faol:

    print(
        "Foydalanuvchi faol emas."
    )

Natija:

Foydalanuvchi faol emas.

and, or, not birgalikda

yosh = 25
hujjat_bor = True
bloklangan = False

if yosh >= 18 and hujjat_bor and not bloklangan:

    print(
        "Kirishga ruxsat berildi."
    )

if

if shartni tekshirish uchun ishlatiladi.

yosh = 25

if yosh >= 18:

    print(
        "Siz voyaga yetgansiz."
    )

Natija:

Siz voyaga yetgansiz.

Agar shart False bo‘lsa, blok bajarilmaydi.


if va indentation

Python'da if ichidagi kod indentation bilan yoziladi.

To‘g‘ri:

yosh = 25

if yosh >= 18:

    print(
        "Voyaga yetgansiz."
    )

Noto‘g‘ri:

yosh = 25

if yosh >= 18:

print(
    "Voyaga yetgansiz."
)

else

Agar if sharti bajarilmasa, else bloki bajariladi.

yosh = 16

if yosh >= 18:

    print(
        "Kirishga ruxsat berildi."
    )

else:

    print(
        "Kirish rad etildi."
    )

Natija:

Kirish rad etildi.

elif

Bir nechta shartni tekshirish uchun elif ishlatiladi.

baho = 85

if baho >= 90:

    print(
        "A'lo."
    )

elif baho >= 70:

    print(
        "Yaxshi."
    )

elif baho >= 60:

    print(
        "Qoniqarli."
    )

else:

    print(
        "Qoniqarsiz."
    )

Natija:

Yaxshi.

Python shartlarni yuqoridan pastga qarab tekshiradi.

Birinchi True bo‘lgan blok bajariladi.


Bir nechta elif

ball = 75

if ball >= 90:

    natija = "A'lo"

elif ball >= 80:

    natija = "Yaxshi"

elif ball >= 70:

    natija = "Qoniqarli"

elif ball >= 60:

    natija = "O‘tish"

else:

    natija = "Yiqildi"

print(
    f"Natija: {natija}"
)

Natija:

Natija: Qoniqarli

Ichma-ich if

Bir if ichida boshqa if bo‘lishi mumkin.

yosh = 25
hujjat_bor = True

if yosh >= 18:

    if hujjat_bor:

        print(
            "Kirishga ruxsat berildi."
        )

    else:

        print(
            "Hujjat mavjud emas."
        )

else:

    print(
        "Yosh yetarli emas."
    )

Shartni bitta if ga birlashtirish

Yuqoridagi kodni and bilan qisqartirish mumkin:

yosh = 25
hujjat_bor = True

if yosh >= 18 and hujjat_bor:

    print(
        "Kirishga ruxsat berildi."
    )

else:

    print(
        "Kirish rad etildi."
    )

in

in qiymatning kolleksiya ichida mavjudligini tekshiradi.

List:

mevalar = [
    "olma",
    "banan",
    "anor"
]

if "olma" in mevalar:

    print(
        "Olma mavjud."
    )

not in

mevalar = [
    "olma",
    "banan",
    "anor"
]

if "shaftoli" not in mevalar:

    print(
        "Shaftoli mavjud emas."
    )

is

is ikki o‘zgaruvchi aynan bir xil obyektga murojaat qilayotganini tekshiradi.

Ko‘pincha None bilan ishlatiladi:

foydalanuvchi = None

if foydalanuvchi is None:

    print(
        "Foydalanuvchi tanlanmagan."
    )

Bu holatda is None ishlatish tavsiya qilinadi.


is not

foydalanuvchi = "Softromeda"

if foydalanuvchi is not None:

    print(
        "Foydalanuvchi mavjud."
    )

== va is farqi

Bu ikkisini aralashtirmaslik kerak.

== qiymatlarni solishtiradi:

birinchi_matn = "Softromeda"
ikkinchi_matn = "Softromeda"

if birinchi_matn == ikkinchi_matn:

    print(
        "Qiymatlar teng."
    )

is esa obyektning aynan o‘zi ekanini tekshiradi.

qiymat = None

if qiymat is None:

    print(
        "Qiymat mavjud emas."
    )

Oddiy qiymat tengligini tekshirishda == ishlatiladi.


Truthy va falsy qiymatlar

Python'da ayrim qiymatlar shartda False kabi baholanadi.

Masalan:

False
None
0
0.0
""
[]
()
{}
set()

Masalan:

ism = ""

if ism:

    print(
        "Ism mavjud."
    )

else:

    print(
        "Ism kiritilmagan."
    )

Natija:

Ism kiritilmagan.

Bo‘sh list

foydalanuvchilar = []

if foydalanuvchilar:

    print(
        "Foydalanuvchilar mavjud."
    )

else:

    print(
        "Foydalanuvchilar mavjud emas."
    )

Natija:

Foydalanuvchilar mavjud emas.

Shartli ifoda

Oddiy holatda ifni bitta qatorda yozish mumkin:

yosh = 25

natija = "Voyaga yetgan" if yosh >= 18 else "Voyaga yetmagan"

print(
    natija
)

Natija:

Voyaga yetgan

Bu usul ternary expression deb ataladi.


Shartli ifodadan foydalanish

son = 10

juftlik = "Juft" if son % 2 == 0 else "Toq"

print(
    juftlik
)

Natija:

Juft

Operatorlarning ustuvorligi

Python ifodalarni ma’lum tartibda hisoblaydi.

Masalan:

natija = 10 + 5 * 2

Natija:

20

Avval:

5 * 2

keyin:

10 + 10

hisoblanadi.

Qavs yordamida tartibni aniq belgilash mumkin:

natija = (
    (10 + 5)
    * 2
)

Natija:

30

Mantiqiy operatorlar ustuvorligi

Umuman olganda:

not
and
or

tartibida bajariladi.

Masalan:

natija = True or False and False

Avval and:

False and False → False

Keyin or:

True or False → True

Natija:

True

Murakkab shartlarda qavs ishlatish kodni tushunarli qiladi:

if (
    (yosh >= 18)
    and
    (hujjat_bor or maxsus_ruxsat)
):

    print(
        "Kirishga ruxsat berildi."
    )

Amaliy misol — yoshni tekshirish

yosh = int(
    input(
        "Yoshingizni kiriting: "
    )
)

if yosh < 0:

    print(
        "Yosh noto‘g‘ri."
    )

elif yosh < 18:

    print(
        "Siz voyaga yetmagansiz."
    )

else:

    print(
        "Siz voyaga yetgansiz."
    )

Amaliy misol — parol tekshirish

parol = input(
    "Parolni kiriting: "
)

if parol == "Softromeda":

    print(
        "Parol to‘g‘ri."
    )

else:

    print(
        "Parol noto‘g‘ri."
    )

Amaliy misol — baholash tizimi

ball = int(
    input(
        "Ballni kiriting: "
    )
)

if ball < 0 or ball > 100:

    print(
        "Ball noto‘g‘ri."
    )

elif ball >= 90:

    print(
        "Baho: A'lo"
    )

elif ball >= 70:

    print(
        "Baho: Yaxshi"
    )

elif ball >= 60:

    print(
        "Baho: Qoniqarli"
    )

else:

    print(
        "Baho: Qoniqarsiz"
    )

Amaliy misol — login tekshirish

foydalanuvchi_nomi = input(
    "Foydalanuvchi nomini kiriting: "
)

parol = input(
    "Parolni kiriting: "
)

if (
    foydalanuvchi_nomi == "Softromeda"
    and parol == "Python123"
):

    print(
        "Tizimga kirish muvaffaqiyatli."
    )

else:

    print(
        "Foydalanuvchi nomi yoki parol noto‘g‘ri."
    )

Amaliy mashqlar

Mashq 1

Foydalanuvchidan son oling va uning:

Musbat
Manfiy
Nol

ekanini aniqlang.

Mashq 2

Foydalanuvchidan yosh oling:

0–12    → Bola
13–17   → O‘smir
18–59   → Katta
60+     → Katta yoshli

natijasini chiqaring.

Mashq 3

Sonning juft yoki toq ekanini aniqlang.

Mashq 4

Ikki son qabul qiling va kattasini aniqlang.

Mashq 5

Uchta son qabul qilib, eng kattasini aniqlang.

Mashq 6

Foydalanuvchi nomi va parolni tekshiring.

Mashq 7

Berilgan matnda ma’lum so‘z mavjudligini in yordamida tekshiring.

Mashq 8

Berilgan qiymat None ekanini is None yordamida tekshiring.

Mashq 9

Bo‘sh list va bo‘sh bo‘lmagan listni if yordamida farqlang.

Mashq 10

Ball asosida baho chiqaradigan dastur yozing.


Mini loyiha — Softromeda kirish tizimi

Foydalanuvchidan ism, parol va yoshni qabul qilamiz.

foydalanuvchi_nomi = input(
    "Foydalanuvchi nomini kiriting: "
)

parol = input(
    "Parolni kiriting: "
)

yosh = int(
    input(
        "Yoshingizni kiriting: "
    )
)

if (
    foydalanuvchi_nomi == "Softromeda"
    and parol == "Python123"
):

    if yosh >= 18:

        print(
            "Softromeda tizimiga kirish muvaffaqiyatli."
        )

    else:

        print(
            "Kirish uchun yoshingiz yetarli emas."
        )

else:

    print(
        "Foydalanuvchi nomi yoki parol noto‘g‘ri."
    )

Bu kichik loyiha quyidagi tushunchalarni birlashtiradi:

input()
int()
if
elif
else
and
==
>=

Bob xulosasi

Bu bobda Python dasturiga qaror qabul qilish imkonini beradigan operator va shartlarni o‘rgandik.

Asosiy operatorlar:

+
-
*
/
//
%
**
==
!=
>
<
>=
<=

Mantiqiy operatorlar:

and
or
not

Shartli konstruksiyalar:

if
elif
else

Shuningdek:

in
not in
is
is not

operatorlari bilan ham tanishdik.

Keyingi bobda sikllar: for, while, break, continue va range() yordamida takrorlanuvchi kodlarni qanday boshqarishni o‘rganamiz.