Bu qanday ishlaydi:
Bu dasturda biz foydalanuvchidan biror qiymat kiritishini so'raymiz, kiritilgan qator uzunligi 3 dan katta bo'lsa, tegishli amallarni bajaramiz. Satr uzunligini hisoblash uchun len funksiyasini ishlatdik va agar satr uzunligi 3 dan kichik bo'lsa, qolgan amallarni continue operatori yordamida bajarmay, siklning keyingi iteratsiyasiga o'tamiz. Aks holda biz uchun kerakli amallarni bajaruvchi buyruqlar bajariladi.
Eslab qoling, continue operatoti for sikli bilan ham ishlaydi.
Bu darsimizda buyruqlar ketma-ketligini boshqaruvchi uchta if, while va for operatorlari hamda ular bilan bog'liq bo'lgan break va continue operatorlaridan qanday foydalanishni ko'rib chiqdik. Bular Pythonning eng ko'p ishlatiladigan konstruksiyalaridan hisoblanadi. Shuning uchun ulardan foydalana olish ko'nikmasi juda ham muxim.
if OPERATORI
if so'zi ingliz tilidan "agar" deb tarjima qilinadi va deyarli barcha dasturlash tillarida shartlarni yozish uchun foydalaniladi.
Keling quyidagi misolni ko'ramiz. Bizda avtolar ro'yxati bor:
avtolar = ['audi','bmw','volvo','kia','hyundai']
Biz ro'yxatdagi har bil elementni katta harf bilan konsolga chiqarmoqchimiz. Bunda istisno sifatida "BMW" mashinasi nomini hamma harflarini katta bilan chiqarishimiz kerak.
Demak quyidagi kodni yozamiz:
for avto in avtolar: # avtolar ichidadi har bir avto uchun ...
if avto == 'bmw': # ... agar avto bmw ga teng bo'lsa ...
print(avto.upper()) # avto nomini hamma harflarini katta bilan yoz.
else: # aks holda ...
print(avto.title()) # avto nomini faqat birinchi harfini katta bilann yoz.
Kodni tahlil qilaylik:
1-qatorda biz for tsiklini boshladik: avto ichidagi har bir avto uchun.
2-qatorda shart yozdik: agar avto bmw ga teng bo'lsa (bu yerda == belgisi tenglikni tekshirish belgisi hisoblanadi va "avto bmw ga tengmi?" deb o'qiladi).
3-qator yuqoridagi shartning badani hisoblanadi va faqatgina shart bajarilgandagina ishga tushadi va avto nomini hamma harflarini katta bilan yozadi (.upper() metodi).
4-qatorda yana bir yangi operator, else bilan tanishamiz. "Else" ingliz tilidan "aks holda" deb tarjima qilinadi va if sharti bajarilmaganda else qismi ichidagi kod bajariladi.
5-qator esa else (aks holda, ya'ni 2- qatordagi shart bajarilmaganda) ishga tushadi va avto nomining faqat birinchi harfini katta bilan yozadi (.title() metodi)
Diqqat! Shart "badani" shartdan biroz o'ngga surib yoziladi (huddi for tsikli kabi). if/else dan keyin kelgan va o'ngga surib yozilgan har bir qator if/else shartining badani hisoblanadi.
Yuoqridagi kodni bajaramiz, va natijani ko'ramiz:
avtolar = ['audi','bmw','volvo','kia','hyundai']
for avto in avtolar: # avtolar ichidadi har bir avto uchun ...
if avto == 'bmw': # ... agar avto bmw ga teng bo'lsa ...
print(avto.upper()) # avto nomini hamma harflarini katta bilan yoz.
else: # aks holda ...
print(avto.title()) # avto nomini faqat birinchi harfini katta bilan yoz.
Natija:
TRUE/FALSE
Yuqorida shartni tekshirish uchun == operatoridan foydalandik. Bu operatorni oddiy tilga tarjima qilsak "tengmi?" degan ma'noni beradi.
Agar shartning ikki tarafidagi qiymatlar teng bo'lsa ifoda TRUE qiymatini qaytaradi ("True" so'zi ingliz tilidan "haqiqiq" yoki "to'g'ri" deb tarjima qilinadi).
Aksincha, qiymatlar tenglik qanoatlantirilmasa, ifoda FALSE qiymatini qaytaradi ("False" so'zini ingliz tilidan "yolg'on" deb tarjima qilsak bo'ladi).
Quyidagi misollarga e'tibor bering. Biz ism degan o'zgaruvchi yaratdik, va unga 'Ali' matnini yukladik. Keling endi == yordamida ism ning qiymatini tekshirib ko'ramiz:
Ko'rib turganingizdek avval ism=='Ali' (ism 'Ali' ga tengmi?) deb so'raganimizda, ifoda TRUE (Ha) degan javobni qaytardi, keyin esa ism=='Vali' (ism 'Vali' ga tengmi?) deb so'raganimizda esa, ifoda FALSE (Yo'q) deb qiymat qaytardi.
Demak, if/else bog'lamasida, if ning badani ifoda True bo'lganda, else ning badani esa ifoda False bo'lganda bajariladi.
MATNLARNI SOLISHTIRISH
Aksar tizimlar foydalanuvchi kiritgan matnni ma'lum bir ko'rinishga keltirib oladi. Buning sababi, kompyuter uchun 'Ali', 'ALI', va 'ali' bu uchta turli hil ism. Ularni solishtirish uchun esa bir ko'rinishga keltirib olish kerak.
Tasavvur qiling siz yangi email manzil ochmoqchisiz, va o'zingizga yangi foydalanuvchi ismini tanlashingiz kerak. Kompyuter siz kiritgan foydalanuvchi ismini tizimdagi mavjud foydalanuvchilar bilan solishtiradi va agar ism band bo'lsa sizga boshqa ism tanlashni aytadi. Solishtirish jarayonida esa, siz tanlagan ismni kichik harflarga o'tkazib, boshqa ismlar bilan solishtiradi.
Yuqoridagi misolda, kimdur anvar@yandex.ru manzilini band qilgan, agarda men 'Anvar', yoki 'ANvar', yoki 'ANVAR' deb login tanlasam ham, anvar@yandex.ru band bo'gani sababli men so'ragan loginlar rad qilinaveradi.
Xo'sh, turli ko'rinishda yozilgan matnlarni qanday qilib solishtiramiz? Juda oddiy. Matnlarni solishtirishdan avval .lower() metodi yordamida kichik harflar ko'rinishiga keltirib olamiz:
ism = 'Ali'
ism.lower() == 'ali'
Natija: True
QIYMATLARNING TENG EMASLIGINI TEKSHIRISH
Agar ikki qiymatning teng emasligini tekshirish talab qilinsa, != operatoridan foydalanilamiz.
ism = input('Ismingiz nima?\n>>>') # Foydalanuvchi ismini so'raymiz
if ism.lower() != 'ali': # Agar ism Aliga teng bo'lmasa ...
print(f"Uzr, {ism.title()} biz Alini kutayapmiz.") # quyidagi xabar chiqadi
else:
print("Salom, Ali")
Demak yuqoridagi kodning 2-qatorida ism ichidagi qiymat 'ali' ga teng bo'lmasa "Uzr, {ism} biz Alini kutyapmiz" degan xabarni chiqar dedik. Aks holda (else), "Salom, Ali" degan xabar chiqadi.
Shartlarda else qismi bo'lishi majburiy emas. Bunga keyingi bo'limlarda tushunarliroq misollar ko'ramiz.
SONLARNI SOLISHTIRISH
Sonlarni solishtirishda yuqoridagi teng (==) va teng emas (!=) shartlariga qo'shimcha ravishda quyidagi mantiqiy shartlar ham qo'shiladi:
Kichik: aKichik yoki teng: a<=b
Katta: a>b
Katta yoki teng: a>=b
javob = float(input("12x6 nechiga teng?>>>"))
if javob!=72:
print("Javob xato!")
yosh = int(input("Yoshingiz nechida?>>>"))
if yosh>=18: # yosh 18 dan katta yoki teng bo'lsa
print('Xush kelibsiz!')
else: # ask holda
print('Kirish mumkin emas!')
login = input("Yangi login tanlang:")
if len(login)<=5: # login uzunligini tekshiramiz
print("Login 5 harfdan ko'proq bo'lishi shart!")
Sonlarni solishtirishda arifmetik ifodalar ham yozishimiz mumkin:
yil = int(input("Tug'ilgan yilingizni kiriting:"))
if 2020-yil<18: # foydalanuvchining yoshini hisoblaymiz
print(f"Yoshingiz {2020-yil}da ekan.")
print("Kirish mumkin emas!")
else:
print("Xush kelibsiz!")
BIR QATOR if/else
Qisqa kodlar uchun shart va uning badanini 1 qatorga jamlab yozishimiz ham mumkin:
yosh = int(input("Yoshingiz nechida?>>>"))
if yosh>65: print("Siz COVID-19 risk guruhida ekansiz")
Yoki:
x, y = 25, 50 # x=25 va y=50
print("x>y") if x>y else print("xNatija: xAMALIYOT
Yangi cars = ['toyota', 'mazda', 'hyundai', 'gm', 'kia'] degan ro'yxat tuzing, ro'yxat elementlarining birinchi harfini katta qilib konsolga chqaring. GM uchun ikkala harfni katta
C# dasturlash tilida if-else lar bilan tanishamiz (Men tanishman siz tanishasiz) Biz hayotda juda ko’p if va else ni ishlatganmiz. “IF” so’zi o’zbek tiliga “Agar”
deb tarjima qilinadi. Keling avval ifni o’zini o’rganib olaylik : Misol: “Agar bir qop pulim bo’lsa, albatta ularni hammasini yoqib yuborgan bo’lar edim”. Bu so’zda biz if ni o’zidan foydalandik demak keling uni C# dasturlash tilida ko’ramiz.
using System;
namespace MyProgram
{
class Program
{
static void Main(string[] args)
{
bool meningBirQopPulim = false;
if(meningBirQopPulim == true)
{
//Yoqib yuborgan bo'lar edim
}
}
}
}
Demak Bu dasturda meningBirQopPulim degan o’zgaruvchi e’lon qildim, va bir qop
pulim yo’qligi uchun false qiymat berdim. Endi esa ifga o’tamiz Dasturda avval “if” kalit so’zi yozib keyin qavslar orasiga shart beriladi, bu shart mantiqiy amallardan bolishi kerak ya’ni true yoki false qiymat qaytaradigan. Shuning uchun qavslar ichiga (birQopPulim == true) deb shart berdik, va bilib turganingizdek yolg’on yani false qiymat qaytaradi. Va shart bajarilmaydi. Natijada jingalak qavslar ichidagi codlar ish bajarmaydi. Endi bu Codelarni bizor o’zgartirsak, ya’ni meni biroz boyitsak
using System;
namespace MyProgram
{
class Program
{
static void Main(string[] args)
{
bool meningBirQopPulim = true;
if(meningBirQopPulim == true)
{
Console.WriteLine("Yoqib yuborish kerak");
}
}
}
}
Bu dasturda men men o’zimni bir qop pulim bor deb e’lon qildim va Dastur shartni tekshirib ko’radi e’tibor bering (true) qiymatga aylanayapti. Va natijada Console oynaga “yoqib yuborish kerak” degan satr chiqadi. Keling endi else ni ham ishlatamiz avval codeni bir ko’ring va ozroq fikr Yuritingchi.
using System;
namespace MyProgram
{
class Program
{
static void Main(string[] args)
{
bool meningBirQopPulim = true;
if(meningBirQopPulim == true)
{
Console.WriteLine("Yoqib yuborish kerak");
}
else
{
Console.WriteLine("Tushingni borib suvga ayt!");
}
}
}
}
Bu dasturda siz if-else ni strukturasini ko’rdingiz Bu structuraga dastur
Shunday qaraydi demak shart true bolsa chap tarafga false bo’lsa o’ng tarafga qarab ketadi. Bu yerda algoritm tarmoqlanayapti shundaymi. Yuqorida siz fikrlagan dastur natijasida Console oynaga “yoqib yuborish” kerak degan yozuv chiqadi yana bir qarang va fikrlab ko’ring. Hullas If kalit so’zidan keyin kelgan shart true bo’lsa if ning ichidagi jingalak qavslar ichidagi kod bajariladi, false bo’lsa else ning ichidagi jingalak qavslar ichidagi kod bajariladi. Hozir yozgan codelarimizni Jamlasak:
using System;
namespace MyProgram
{
class Program
{
static void Main(string[] args)
{
bool meningBirQopPulim = false;
if(meningBirQopPulim)
{
Console.WriteLine("Yoqib yuborish kerak");
}
else
{
Console.WriteLine("Tushingni borib suvga ayt!");
}
}
}
}
Natijada Console oynaga “Tushingni borib suvga ayt” degan so’z chiqadi. Sababi meningBirQopPulim o’zgaruvchi false qiymat oldi shuning uchun if shartidaga shu o’zgaruvchi nomi yetarli chunki o’zi false qiymat qaytarib turibdi. Yanada yaxshiroq tushunishingiz uchun bir nechta dasturlar ko’rsataman:
using System;
namespace MyProgram
{
class Program
{
static void Main(string[] args)
{
int getNumber = 0;
if(getNumber == 0)
{
Console.WriteLine("Rost");
}
else
{
Console.WriteLine("Yolg'on")
}
}
}
}
Natija: "Rost"
! Agar if yoki else ning operatori bitta bolsa jingalak qavslar shart emas!(qoyilsa ham qoyilmasa ham to’g’ri)
using System;
namespace MyProgram
{
class Program
{
static void Main(string[] args)
{
int DunyoMojizalari = 6;
if (DunyoMojizalari == 7) Console.WriteLine("Hammasi joyida");
else if (DunyoMojizalari < 7)
{
Console.WriteLine("Mo'jizalarda Kamchilik bor");
Console.WriteLine("Aslida 7 ta bo'lish kerak edi");
}
else Console.WriteLine("Ko'payib ketdi");
}
}
}
Dostları ilə paylaş: |