1
2
3
4
|
yoshi = 21
vazni = 72
natija = yoshi > 17 and vazni == 72
print(natija) # True
|
Yuqoridagi dasturda murakkab mantiqiy amal ikki qismdan yoshi > 17 va vazni > 56 qismlardan tashkil topgan bo‘lib, ular and mantiqiy operatori bilan birlashtirilgan. Agarda ikkala mantiqiy amal True qiymat qaytarsa ifodaning qiymati True bo‘ladi, aks holda False qiymat qaytaradi. Matriqiy ifodalarda faqatgina taqqoslash amallaridan foydalanish shart emas. Ixtiyoriy mantiqiy amal yoki boolean turidagi qiymatlar (True, False) ham ishlatilishi mumkin. Masalan:
1
2
3
4
|
yoshi = 21
vazni = 72 t = True
natija = yoshi > 17 and vazni > 56 and t
print(natija) # True
|
or (mantiqiy qo‘shish). Agarda ifodadagi biror bir qism ifoda True qiymat qaytarsa, yakuniy natija ham True, aks holda False bo‘ladi.
1
2
3
|
yoshi = 21 t = False
natija = yoshi > 17 or t
print(natija) # True
|
not (mantiqiy inkor). Ifodaning qiymatini True bo‘lsa, natija False va aksincha.
1
2
3
|
yoshi = 21 t = False
print(not yoshi > 17) # False
print(not t) # True
|
and operatorining biror bir operandi False qiymatga ega bo‘lsa, u holda boshqa operand qiymati tekshirib (hisoblanib) o‘tirmaydi, har doim natija False bo‘ladi. Bunday xususiyat ish unumdorligini bir oz bo‘lsada oshirish imkonini beradi. Huddi shunaqa xususiyat or operatori uchun ham o‘rinli. Ya’ni or operatorining biror bir operandi qiymati True qiymatga ega bo‘lsa, boshqa operandlar tekshirilmaydi, natija sifatida har doim True qiymati qaytariladi. Agar bitta ifodada bir nechta mantiqiy operatorlar qatnashgan bo‘lsa, u holda ularning ustunligiga (prioritetiga) alohida e’tibor qatarish kerak. Dastlab not operatori keyin and va eng so‘ngra or operatori bajariladi. Masalan:
1
2
3
|
yoshi = 22 holati = False vazni = 58
natija = vazni == 58 or holati and not yoshi > 21 # True
print(natija)
|
Ushbu dasturda keltirilgan ifodadagi mantiqiy amallar kuyidagi ketma- ketlikda bajariladi:
not yoshi > 21 mantiqiy ifoda False qiymat qaytaradi;
holati and False (not yoshi > 21) esa False qiymat qaytaradi;
vazni == 58 or True (holati and not yoshi > 21) esa True qiymat qaytaradi. Shuni alohida ta’kidlash kerarki, mantiqiy ifodalarda mantiqiy amallarning bajarilish ketma-ketligini qavslar (, ) yordamida o‘zgartirish mumkin.
Satrlar ustida amallar
Satrlar – qo‘shtirnoqichiga olingan Unicode kodidagi belgilar ketma-ketligi orqali ifodalanadi. Pythonda satrlar apostrof („,‟) va qo‘shtirnoqlar (“,”) orqali berilishi mumnkin. Uchta ketma-ket kelgan apostrof ham satrlarni ifodalashda ishlatiladi.
1
2
3
|
ismi = «Murodullayev»
familiyasi = ‘Rasuljon’
print(ismi, familiyasi) # Murodullayev Rasuljon
|
Satrlar ustida eng keng tarqalgan amallardan biri bu ularni birlashtirish yoki konkatenatsiya amali hisoblanadi. Satrlarni birlashtirish uchun + amali qo‘llaniladi. Masalan:
1
2
3
|
ismi = «Murodullayev» familiyasi =‘Rasuljon’ sharifi = «Nosirovich»
FISH = ismi + « « + familiyasi + « « + sharifi
print(FISH) # Murodullayev Rasuljon Nosirovich
|
Agar satr va sonlarni birlashtirish talab qilinsa, u holda str() funksiyasi yordamida sonni satr turiga keltirish kerak bo‘ladi. Masalan
:1
2
3
4
|
ism = «Rasuljon»
yosh = 17
info = «Ismi: «+ ism + « yoshi: «+ str(yosh)
print(info) # Ismi: Rasuljon yoshi:17
|
Maxsus belgilar: Pythonda boshqa tillardagi kabi quyidagi maxsus belgilar mavjud:
\t – tabulyatsiya belgisi;
\n – yangi satrga o‘tish belgisi;
\’ – apostrof belgisi;
\” – qo‘shtirnoqbelgisi.
Quyidagi misolda yuqoridagi barcha maxsus belgilarni qo‘llangan holat uchun dastur keltirilgan.
1
|
print(«1-chi kurs\n\»O\’MU\»\ttalabasi»)
|
Konsol ekraniga quyidagicha natija chiqariladi:
1-chi kurs
«O‘MU» talabasi Satrlarni taqqoslash: Satrlarni taqqoslashda satrda ishtirok etayotgan belgilarning registriga alohida e’tibor qaratish lozim. Har qanday raqam ixtiyoriy alfavit belgisidan shartli kichik hamda katta registrli alfavit belgilari kichik registrli avfavit belgilaridan shartli kichik sanaladi. Masalan:
1
2
3
4
|
str1 = «1a» str2 = «ab» str3 = «Aa»
print(str1 > str2) # False, chunki str1 ning birinchi # belgisi raqam
print(str2 > str3) # True, chunki str2 ning birinchi
# belgisi kichik registrga ega
|
Yuqoridagi dasturda “1a”>”ab” sharti False qiymat qaytaradi. Chunki raqam alfavit belgisidan shartli kichik hisoblanadi. Shuni alohida ta’kidlash kerakki, ikki satr solishtirilganda ularning mos tarkibiy elementlari solishritiladi(“1a”>”ab” holatda, dastlab 1 va “a” tekshiriladi). Agarda solishtirish natijasi teng bo‘lsa navbatdagi mos elementlari solishtiriladi. Jarayon birinchi teng bo‘lmagan holat topilganda yoki satrlardan birining oxiriga yetib kelinganda tugatiladi. Agar satrlarning dastlabki barcha mos elementlari teng, faqat ularning uzunliklari farqli bo‘lsa, u holda uzunligi katta satr shartli katta bo‘ladi. Masalan: “abcd”<”abcde” sharti True. Bundan tashqari satrlar ustuda amal bajaradigan upper() va lower() funksiyalari mavjud bo‘lib, satr tarkibidagi alfavit belgilarni mos ravishda kichik va katta registrlilariga almashtirish uchun ishlatiladi. Masalan:
1
2
3
4
5
6
|
str1 = «Kitob»
str2 = «kitob»
print(str1 == str2) # False - chunki ularni birinchi
# harflari turli registrda
print(str1.lower() == str2.lower()) # True chunki ikkala
# satr ham kichik registrga keltirilgan
|
if-shart amali (operatori)
if shart amali shart ifodalarda qo‘llanilib, uning natijasiga ko‘ra dastur bajarilishi u yoki bu yo‘lga yo‘naltiriladi. U quyidagi umumiy ko‘rinishga ega:
if mantiqiy ifoda: ifodalar
[elif mantiqiy ifoda: ifodalar]
[else:
ifodalar]
if shart operatorining eng sodda ko‘rinishida if kalit so‘zidan keyin mantiqiy ifoda yoziladi va ikki nuqta (:) qo‘yiladi. Keyingi qatordan amallar yoziladi. Har bir amal alohida qatorda yozilishi yoki ularni nuqta vergul (;) bilan ajratgan holda bitta qatordan yozish talab qilinadi. Shuni alohida ta’kidlash kerakki Pythonda boshqa tillardagi kabi if shart amalini tana qismini ifodalovchi maxsus belgilar mavjud emas (manasal c++, c# da {,} blok belgilari ishlatiladi). Shu sababli uning tana qismidagi ifodalar if kalit so‘ziga nisbatan bitta xat boshi (to‘rtta probel belgisi) belgisi tashlab yoziladi. Masalan:
|