Taqqoslash va mantiqiy amallar
Dastur qaror qabul qilishi uchun avval savol bera olishi kerak: «Yoshi 18 dan kattami?», «Parol to'g'rimi?», «Hisobda pul yetarlimi?». Bu darsda Python'ga shunday savollar berishni o'rganamiz. Javob doim bitta: True yoki False.
Bu darsda
- Oltita taqqoslash amali:
==,!=,<,>,<=,>= =va==ning farqi- Satrlarni taqqoslash
- Mantiqiy amallar:
and,or,not - Murakkab shartlarni tuzish
Taqqoslash amallari
Taqqoslash ikki qiymatni solishtiradi va natijada mantiqiy qiymat — True (rost) yoki False (yolg'on) beradi:
| Amal | Ma'nosi | Misol | Natija |
|---|---|---|---|
== | teng | 5 == 5 | True |
!= | teng emas | 5 != 3 | True |
> | katta | 5 > 3 | True |
< | kichik | 5 < 3 | False |
>= | katta yoki teng | 5 >= 5 | True |
<= | kichik yoki teng | 4 <= 3 | False |
yosh = 17 print(yosh >= 18) print(yosh < 18) print(yosh == 17) print(yosh != 17)
False True True False
Taqqoslash natijasini o'zgaruvchiga ham saqlash mumkin — bu oddiy bool qiymat:
hisob = 85000
narx = 120000
pul_yetadimi = hisob >= narx
print("Pul yetadimi?", pul_yetadimi)
= va == — butunlay boshqa narsalar
Bu yangi boshlovchilarning eng ko'p qiladigan xatolaridan biri:
=— qiymat berish:x = 5— «x ga 5 ni ber».==— tenglikni tekshirish:x == 5— «x 5 ga tengmi?».
= — buyruq: «Qutiga olma sol!». == — savol: «Qutida olma bormi?». Buyruq hech narsa qaytarmaydi, savolga esa javob («ha» yoki «yo'q») olinadi.
Satrlarni taqqoslash
Satrlar ham taqqoslanadi. Ular aynan bir xil bo'lsagina teng hisoblanadi — katta-kichik harf va bo'sh joylar ham muhim:
print("olma" == "olma")
print("olma" == "Olma")
print("olma" == "olma ")
print("Olma".lower() == "olma")
True False False True
Oxirgi qatorda kichik harflarga o'tkazib taqqosladik — foydalanuvchi javobini tekshirishda bu usul juda qo'l keladi.
< va > satrlar uchun alifbo tartibini tekshiradi: "anor" < "olma" — True, chunki «a» harfi «o» dan oldin keladi.
Turli turdagi qiymatlar teng bo'lmaydi: "10" == 10 — False, chunki biri satr, ikkinchisi son. Lekin 10 == 10.0 — True: ikkalasi ham son va qiymatlari teng.
Mantiqiy amallar: and, or, not
Hayotdagi qarorlar ko'pincha bir nechta shartga bog'liq bo'ladi: «Yoshi 16 dan katta va chiptasi bor bo'lsa, kinoga kiradi». Shartlarni birlashtirish uchun uchta mantiqiy amal bor.
and — «va»
and faqat ikkala shart ham rost bo'lganda True beradi:
| A | B | A and B |
|---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
yosh = 17
chipta_bor = True
print("Kinoga kira oladimi?", yosh >= 16 and chipta_bor)
or — «yoki»
or shartlardan kamida bittasi rost bo'lsa, True beradi:
| A | B | A or B |
|---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
kun = "shanba"
dam_olish = kun == "shanba" or kun == "yakshanba"
print("Bugun dam olish kunimi?", dam_olish)
not — «emas»
not qiymatni teskarisiga aylantiradi: not True — False, not False — True.
yomgir = False
print("Sayrga chiqamizmi?", not yomgir)
Murakkab shartlar
Bir nechta amalni birga ishlatish mumkin. Ularning tartibi: avval not, keyin and, oxirida or. Chalkashmaslik uchun qavs ishlatgan ma'qul:
yosh = 20
talaba = True
nafaqada = False
chegirma = (yosh < 25 and talaba) or nafaqada
print("Chegirma bormi?", chegirma)
Oraliqni tekshirish
Son biror oraliqda ekanini tekshirish uchun Python matematikadagidek qisqa yozuvga ruxsat beradi:
ball = 78 print(ball >= 71 and ball <= 85) print(71 <= ball <= 85)
Ikkala qator ham bir xil ishni qiladi, lekin ikkinchisi qisqaroq va tushunarliroq.
Mashqlar
1-mashq Natijani taxmin qiling
Har bir qator nima chiqarishini avval qog'ozga yozing, keyin ishga tushirib tekshiring.
print(10 > 5 and 3 > 7)
print(10 > 5 or 3 > 7)
print(not 10 > 5)
print("a" < "b")
print(5 == 5.0)
print("5" == 5)
Javobni ko'rish
False, True, False, True, True, False.
2-mashq Oraliq
son 1 dan 100 gacha (ikkalasi ham kiradi) oraliqda ekanini tekshiradigan ifoda yozing va natijasini chiqaring. son = 57 uchun True chiqishi kerak. Keyin son ni 0 va 101 qilib sinab ko'ring.
son = 57
Yechimni ko'rish
son = 57 print(1 <= son <= 100)
3-mashq Kabisa yili
Yil kabisa yili bo'ladi, agar u 4 ga bo'linsa va 100 ga bo'linmasa, yoki 400 ga bo'linsa. Shu qoidani bitta mantiqiy ifoda bilan yozing va 2024, 1900, 2000 yillar uchun tekshiring.
True False True
yil = 2024 print(...) # shu yerga ifoda yozing yil = 1900 print(...) yil = 2000 print(...)
Ishora
«4 ga bo'linadi» — yil % 4 == 0. «100 ga bo'linmaydi» — yil % 100 != 0.
Yechimni ko'rish
yil = 2024 print((yil % 4 == 0 and yil % 100 != 0) or yil % 400 == 0) yil = 1900 print((yil % 4 == 0 and yil % 100 != 0) or yil % 400 == 0) yil = 2000 print((yil % 4 == 0 and yil % 100 != 0) or yil % 400 == 0)
Bir xil ifodani uch marta yozish noqulay, to'g'rimi? 15-darsda buni funksiya yordamida chiroyli hal qilamiz.
O'zingizni sinang
5 == 5.0 nimaga teng?
TrueFalse- Xato beradi
5
To'g'ri. Ikkalasi ham son va qiymatlari teng.
True and False nimaga teng?
TrueFalse- Xato beradi
None
To'g'ri. and uchun ikkala qism ham rost bo'lishi kerak.
False or True nimaga teng?
TrueFalse- Xato beradi
None
To'g'ri. or uchun kamida bitta qism rost bo'lishi yetarli.
«x 10 ga tengmi?» degan savol Python'da qanday yoziladi?
x = 10x => 10x == 10x === 10
To'g'ri. Bitta = — qiymat berish, ikkita == — taqqoslash.
"10" == 10 nimaga teng?
True- Xato beradi
10False
To'g'ri. Satr va son hech qachon teng bo'lmaydi, hatto bir xil ko'rinsa ham.
Xulosa
- Taqqoslash amallari
==,!=,<,>,<=,>=natijasi —TrueyokiFalse. =qiymat beradi,==tenglikni tekshiradi.- Satrlar aynan bir xil bo'lsagina teng: katta-kichik harf ham muhim.
and— ikkalasi ham rost;or— kamida bittasi rost;not— teskarisi.- Oraliqni qisqa yozish mumkin:
1 <= x <= 100.