Зеҳн
Курси фишурдаи Python

Омӯзиши барномасозӣ бо Python аз сифр: насби Python ва муҳаррири код, тағйирёбандаҳо ва сатрҳо, рӯйхатҳо, дастурҳои if, луғатҳо, воридкунии маълумот ва даврҳои while, функсияҳо, классҳо, кор бо файлҳо ва истисноҳо ва санҷиши код бо pytest. Ҳар боб мисолҳои код ва машқҳои «Худатон бисанҷед» дорад. Муқаддима ва бобҳои 2–11 тарҷумаи тоҷикии китоби Эрик Маттес «Python Crash Course» (нашри 3) мебошанд; боби 1 ва замима барои ин нашр навишта шудаанд.

Агенти Зеҳнӣ · 16 октябри 2026 · 13 саҳифа · 2 писанд

ТаҳсилотБарномасозӣ
Аз аввал хондан

Боби 5. Дастурҳои if

Барномасозӣ аксар вақт аз санҷидани як қатор шартҳо ва вобаста ба онҳо интихоб кардани амали мувофиқ иборат аст. Дастури if дар Python имкон медиҳад, ки ҳолати ҷории барномаро санҷида, мувофиқи он амал кунед.

Дар ин боб шумо навиштани санҷишҳои шартиро меомӯзед, ки бо ёрии онҳо ҳар шарти заруриро санҷидан мумкин аст. Шумо навиштани дастурҳои содаи if ва сохтани занҷираҳои мураккабтари онҳоро меомӯзед, то муайян кунед, ки шартҳои дилхоҳатон кай иҷро мешаванд. Сипас ин мафҳумро ҳангоми кор бо рӯйхатҳо истифода мебаред: даври for менависед, ки аксари унсурҳои рӯйхатро бо як тарз ва унсурҳои дорои қиматҳои муайянро бо тарзи дигар коркард мекунад.

Мисоли сода

Мисоли зерин нишон медиҳад, ки чӣ гуна санҷишҳои if барои муносибати дуруст бо ҳолатҳои махсус кумак мекунанд. Тасаввур кунед, ки рӯйхати мошинҳо доред ва мехоҳед номи ҳар мошинро чоп кунед. Номи мошинҳо исми хос аст, бинобар ин аксари онҳоро бояд бо ҳарфи аввали калон чоп кард. Аммо қимати 'bmw' бояд пурра бо ҳарфҳои калон чоп шавад.

Коди зерин рӯйхати номҳои мошинҳоро давр зада, қимати 'bmw'-ро меҷӯяд. Ҳар боре ки ин қимат пайдо мешавад, ном пурра бо ҳарфҳои калон чоп мешавад:

cars.py

cars = ['audi', 'bmw', 'subaru', 'toyota']

for car in cars:  
    if car == 'bmw':  
        print(car.upper())  
    else:  
        print(car.title())  

Давр аввал месанҷад, ки оё қимати ҷории car ба 'bmw' баробар аст. Агар баробар бошад, қимат пурра бо ҳарфҳои калон чоп мешавад. Агар қимати car чизи дигар бошад, он бо ҳарфи аввали калон чоп мешавад:

Audi  
BMW  
Subaru  
Toyota  

Ин мисол якчанд мафҳумеро муттаҳид мекунад, ки дар ин боб меомӯзед. Биёед аввал намудҳои санҷишҳоеро баррасӣ кунем, ки бо онҳо шартҳои барномаро месанҷед.

Санҷишҳои шартӣ

Асоси ҳар дастури if ифодаест, ки натиҷааш метавонад True ё False бошад. Онро санҷиши шартӣ меноманд. Python аз қиматҳои True ва False истифода мебарад, то муайян кунад, ки оё коди дохили дастури if бояд иҷро шавад.

Агар натиҷаи санҷиш True бошад, Python коди блоки if-ро иҷро мекунад. Агар натиҷа False бошад, Python он блокро мегузаронад.

Санҷиши баробарӣ

Аксари санҷишҳои шартӣ қимати ҷории тағйирёбандаро бо қимати муайян муқоиса мекунанд. Содатарин санҷиш муайян мекунад, ки оё қимати тағйирёбанда ба қимати дилхоҳ баробар аст:

>>> car = 'bmw'  
>>> car == 'bmw'  
True  

Сатри аввал бо истифода аз як аломати баробарӣ қимати 'bmw'-ро ба car медиҳад. Ин амалро пештар борҳо дидаед.

Сатри навбатӣ бо истифода аз ду аломати баробарӣ — == — месанҷад, ки оё қимати car ба 'bmw' баробар аст. Ин оператори баробарӣ аст. Агар қиматҳои тарафи чап ва рости оператор баробар бошанд, он True ва агар баробар набошанд, False бармегардонад. Дар ин мисол қиматҳо баробаранд, бинобар ин Python True бармегардонад.

Агар қимати car чизи дигаре бошад, санҷиш False бармегардонад:

>>> car = 'audi'  
>>> car == 'bmw'  
False  

Як аломати баробарӣ барои қиматдиҳӣ истифода мешавад. Сатри якумро чунин хондан мумкин аст: «Қимати car-ро ба 'audi' баробар кун».

Ду аломати баробарӣ бошад, савол медиҳад: «Оё қимати car ба 'bmw' баробар аст?» Аксари забонҳои барномасозӣ аломатҳои баробариро ҳамин тавр истифода мебаранд.

Нодида гирифтани калон ё хурд будани ҳарфҳо ҳангоми санҷиши баробарӣ

Санҷиши баробарӣ дар Python калон ё хурд будани ҳарфҳоро ба назар мегирад. Масалан, ду қимате, ки танҳо аз рӯйи калон ё хурд будани ҳарфҳо фарқ мекунанд, баробар ҳисоб намешаванд:

>>> car = 'Audi'  
>>> car == 'audi'  
False  

Агар калон ё хурд будани ҳарфҳо муҳим бошад, ин рафтор муфид аст. Аммо агар он муҳим набошад ва танҳо қимати тағйирёбандаро санҷидан хоҳед, метавонед пеш аз муқоиса қиматро ба ҳарфҳои хурд табдил диҳед:

>>> car = 'Audi'  
>>> car.lower() == 'audi'  
True  

Акнун ин санҷиш барои шаклҳои гуногуни навишти 'Audi', ба монанди 'AUDI' ё 'aUdI', True бармегардонад.

Методи lower() қимати аслии дар car нигоҳдошташударо тағйир намедиҳад. Аз ин рӯ, чунин муқоисаро бе тағйир додани тағйирёбандаи аслӣ анҷом додан мумкин аст:

>>> car = 'Audi'  
>>> car.lower() == 'audi'  
True  
>>> car  
'Audi'  

Мо аввал сатри 'Audi'-ро, ки бо ҳарфи калон оғоз мешавад, ба тағйирёбандаи car медиҳем. Сипас шакли бо ҳарфҳои хурд навишташудаи онро бо сатри 'audi' муқоиса мекунем. Ду сатр баробаранд, бинобар ин Python True бармегардонад. Мебинем, ки методи lower() қимати дар car нигоҳдошташударо тағйир надодааст.

Вебсайтҳо низ барои маълумоти воридкардаи корбарон бо ҳамин усул баъзе қоидаҳоро татбиқ мекунанд. Масалан, сомона метавонад чунин санҷишро истифода барад, то ҳар корбар номи воқеан нотакрор дошта бошад ва номи ӯ танҳо бо калон ё хурд будани ҳарфҳо аз номи корбари дигар фарқ накунад.

Вақте касе номи нави корбарӣ пешниҳод мекунад, он ба ҳарфҳои хурд табдил дода шуда, бо шаклҳои хурдҳарфи ҳамаи номҳои мавҷуда муқоиса мешавад. Ҳангоми ин санҷиш номи 'John' рад мешавад, агар ягон шакли навишти 'john' аллакай истифода шуда бошад.

Санҷиши нобаробарӣ

Агар хоҳед муайян кунед, ки ду қимат баробар нестанд, метавонед аз оператори нобаробарӣ — != — истифода баред.

Биёед тарзи истифодаи онро бо як дастури дигари if бинем. Мо яке аз иловаҳои барои питса фармоишшударо дар тағйирёбанда нигоҳ медорем. Агар муштарӣ анчоус — як навъи моҳии хурд — фармоиш надода бошад, паёме чоп мекунем:

toppings.py

requested_topping = 'mushrooms'

if requested_topping != 'anchovies':  
    print("Анчоус илова накунед!")  

Ин код қимати requested_topping-ро бо 'anchovies' муқоиса мекунад. Агар ин ду қимат баробар набошанд, натиҷаи санҷиш True мешавад ва Python коди блоки if-ро иҷро мекунад. Агар баробар бошанд, натиҷа False мешавад ва он блок иҷро намешавад.

Азбаски қимати requested_topping ба 'anchovies' баробар нест, функсияи print() иҷро мешавад:

Анчоус илова накунед!  

Аксари ифодаҳои шартии навиштаатон баробариро месанҷанд, аммо баъзан санҷиши нобаробарӣ қулайтар мешавад.

Муқоисаҳои ададӣ

Санҷидани қиматҳои ададӣ хеле осон аст. Масалан, коди зерин месанҷад, ки оё шахс 18-сола аст:

>>> age = 18  
>>> age == 18  
True  

Инчунин метавонед санҷед, ки ду адад баробар нестанд. Масалан, коди зерин ҳангоми нодуруст будани ҷавоби додашуда паёме чоп мекунад:

magic_number.py

answer = 17

if answer != 42:  
    print("Ин ҷавоби дуруст нест. Лутфан, бори дигар кӯшиш кунед!")  

Шарт иҷро мешавад, зеро қимати answer, яъне 17, ба 42 баробар нест. Аз ин рӯ, блоки коде, ки бо фосилаи дохилӣ навишта шудааст, иҷро мешавад:

Ин ҷавоби дуруст нест. Лутфан, бори дигар кӯшиш кунед!  

Дар дастурҳои шартӣ муқоисаҳои гуногуни риёзиро низ истифода бурдан мумкин аст:

  • < — хурдтар аз;
  • <= — хурдтар ё баробар ба;
  • > — калонтар аз;
  • >= — калонтар ё баробар ба.
>>> age = 19  
>>> age < 21  
True  
>>> age <= 21  
True  
>>> age > 21  
False  
>>> age >= 21  
False  

Ҳар яке аз ин муқоисаҳо метавонад қисми дастури if бошад ва барои муайян кардани шартҳои дақиқи дилхоҳ кумак кунад.

Санҷиши якчанд шарт

Баъзан мехоҳед якчанд шартро ҳамзамон санҷед. Масалан, барои иҷро кардани амале шояд лозим бошад, ки ҳар ду шарт True бошанд. Дар ҳолати дигар, True будани танҳо яке аз шартҳо кофист. Калимаҳои калидии and ва or дар чунин ҳолатҳо кумак мекунанд.

Истифодаи and барои санҷиши якчанд шарт

Барои санҷидани он ки оё ҳар ду шарт ҳамзамон True ҳастанд, санҷишҳоро бо калимаи калидии and пайваст кунед.

Агар ҳар ду санҷиш дуруст бошанд, натиҷаи тамоми ифода True мешавад. Агар яке ё ҳар дуи онҳо нодуруст бошанд, натиҷа False мешавад.

Масалан, бо санҷиши зерин муайян кардан мумкин аст, ки оё ҳар ду шахс 21-сола ё калонтар ҳастанд:

>>> age_0 = 22  
>>> age_1 = 18  
>>> age_0 >= 21 and age_1 >= 21  
False  
>>> age_1 = 22  
>>> age_0 >= 21 and age_1 >= 21  
True  

Аввал ду синну солро дар тағйирёбандаҳои age_0 ва age_1 нигоҳ медорем. Сипас месанҷем, ки оё ҳар ду синну сол аз 21 кам нестанд. Санҷиши тарафи чап дуруст, аммо санҷиши тарафи рост нодуруст аст. Аз ин рӯ, натиҷаи тамоми ифода False мешавад.

Баъд қимати age_1-ро ба 22 иваз мекунем. Акнун ҳар ду санҷиш дурустанд ва натиҷаи тамоми ифода True мешавад.

Барои осонтар хондани код метавонед ҳар санҷишро дар қавс гиред, аммо ин ҳатмӣ нест:

(age_0 >= 21) and (age_1 >= 21)  

Истифодаи or барои санҷиши якчанд шарт

Калимаи калидии or низ имкон медиҳад, ки якчанд шартро санҷед. Аммо дар ин ҳолат дуруст будани яке ё ҳар ду санҷиш кофист. Ифодаи дорои or танҳо вақте False мешавад, ки ҳар ду санҷиш нодуруст бошанд.

Боз ду синну солро мегирем, аммо ин дафъа кофист, ки ақаллан яке аз шахсон 21-сола ё калонтар бошад:

>>> age_0 = 22  
>>> age_1 = 18  
>>> age_0 >= 21 or age_1 >= 21  
True  
>>> age_0 = 18  
>>> age_0 >= 21 or age_1 >= 21  
False  

Мо боз аз ду тағйирёбандаи синну сол оғоз мекунем. Азбаски санҷиши age_0 дуруст аст, натиҷаи тамоми ифода True мешавад.

Сипас қимати age_0-ро то 18 кам мекунем. Дар санҷиши охирин ҳар ду шарт нодуруст мешаванд ва натиҷаи тамоми ифода False мешавад.

Санҷидани мавҷудияти қимат дар рӯйхат

Баъзан пеш аз иҷрои амал муҳим аст, ки мавҷудияти қимати муайянро дар рӯйхат санҷед. Масалан, пеш аз анҷом додани сабти номи корбар дар вебсайт, шояд лозим шавад санҷед, ки номи нави корбарӣ дар рӯйхати номҳои мавҷуда ҳаст ё не. Дар лоиҳаи харитасозӣ шояд санҷед, ки макони пешниҳодшуда аллакай дар рӯйхати маконҳои маълум вуҷуд дорад ё не.

Барои санҷидани мавҷудияти қимат дар рӯйхат калимаи калидии in-ро истифода баред.

Кодеро барои питсахона тасаввур мекунем. Рӯйхати иловаҳои фармоишдодаи муштариро месозем ва сипас месанҷем, ки оё иловаҳои муайян дар он ҳастанд:

>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']  
>>> 'mushrooms' in requested_toppings  
True  
>>> 'pepperoni' in requested_toppings  
False  

Калимаи калидии in ба Python мегӯяд, ки мавҷудияти 'mushrooms' ва 'pepperoni'-ро дар рӯйхати requested_toppings санҷад.

Ин усул хеле муфид аст: метавонед рӯйхати қиматҳои муҳимро созед ва баъд ба осонӣ санҷед, ки қимати мавриди санҷиш ба яке аз унсурҳои он мувофиқат мекунад ё не.

Санҷидани набудани қимат дар рӯйхат

Дар ҳолатҳои дигар донистан муҳим аст, ки қимате дар рӯйхат вуҷуд надорад. Барои ин аз not in истифода бурдан мумкин аст.

Масалан, рӯйхати корбаронеро тасаввур кунед, ки навиштани шарҳ дар форум барояшон манъ шудааст. Пеш аз иҷозат додани шарҳнависӣ метавонед санҷед, ки корбар дар ин рӯйхат ҳаст ё не:

banned_users.py

banned_users = ['andrew', 'carolina', 'david']  
user = 'marie'

if user not in banned_users:  
    print(f"{user.title()}, агар хоҳед, метавонед посух нависед.")  

Дастури if дар ин ҷо хеле равшан хонда мешавад: агар қимати user дар рӯйхати banned_users набошад, натиҷаи санҷиш True мешавад ва Python сатри дохили блокро иҷро мекунад.

Корбари 'marie' дар рӯйхати banned_users нест, бинобар ин паёми зеринро мебинад:

Marie, агар хоҳед, метавонед посух нависед.  

Ифодаҳои булӣ

Ҳангоми омӯзиши барномасозӣ бо истилоҳи ифодаи булӣ рӯ ба рӯ мешавед. Ифодаи булӣ номи дигари санҷиши шартӣ аст. Қимати булӣ ё True аст ё False, мисли натиҷаи ифодаи шартӣ пас аз санҷидани он.

Қиматҳои булӣ аксар вақт барои пайгирӣ кардани ҳолатҳои муайян истифода мешаванд. Масалан, оё бозӣ ҳоло фаъол аст ё оё корбар ҳаққи таҳрири муҳтавои муайянро дар вебсайт дорад:

game_active = True  
can_edit = False  

Қиматҳои булӣ воситаи қулайи пайгирии ҳолати барнома ё шарти муҳими он мебошанд.

Худатон бисанҷед

5-1. Санҷишҳои шартӣ: Як қатор санҷишҳои шартӣ нависед. Барои ҳар санҷиш тавсиф ва пешгӯии натиҷаи онро чоп кунед. Коди шумо бояд тақрибан чунин бошад:

car = 'subaru'  
print("Оё car == 'subaru'? Пешгӯии ман: True.")  
print(car == 'subaru')

print("\nОё car == 'audi'? Пешгӯии ман: False.")  
print(car == 'audi')  
  • Натиҷаҳоро бодиққат бинед ва бовар ҳосил кунед, ки сабаби True ё False шудани ҳар сатрро мефаҳмед.
  • Ақаллан 10 санҷиш созед. Натиҷаи ақаллан 5 санҷиш бояд True ва натиҷаи 5 санҷиши дигар False бошад.

5-2. Санҷишҳои шартии бештар: Шумораи санҷишҳоро бо 10 маҳдуд кардан шарт нест. Агар хоҳед муқоисаҳои бештарро санҷед, онҳоро навишта, ба файли conditional_tests.py илова кунед. Барои ҳар яке аз ҳолатҳои зерин ақаллан як натиҷаи True ва як натиҷаи False ҳосил кунед:

  • Санҷиши баробарӣ ва нобаробарии сатрҳо.
  • Санҷишҳо бо методи lower().
  • Санҷишҳои ададӣ бо операторҳои баробарӣ, нобаробарӣ, калонтар, хурдтар, калонтар ё баробар ва хурдтар ё баробар.
  • Санҷишҳо бо калимаҳои калидии and ва or.
  • Санҷидани мавҷудияти унсур дар рӯйхат.
  • Санҷидани набудани унсур дар рӯйхат.

Дастурҳои if

Вақте санҷишҳои шартиро фаҳмидед, метавонед ба навиштани дастурҳои if оғоз кунед. Якчанд намуди дастури if вуҷуд дорад. Интихоби онҳо аз шумораи шартҳое вобаста аст, ки бояд санҷед.

Дар бахши санҷишҳои шартӣ аллакай чанд мисоли if-ро дидед. Акнун ин мавзуъро муфассалтар меомӯзем.

Дастурҳои содаи if

Содатарин намуди дастури if як санҷиш ва як амал дорад:

if санҷиши_шартӣ:  
    амалеро иҷро кун  

Дар сатри аввал ҳар гуна санҷиши шартиро ва дар блоки баъди он қариб ҳар гуна амалро ҷойгир кардан мумкин аст.

Агар натиҷаи санҷиш True бошад, Python коди блоки if-ро иҷро мекунад. Агар натиҷа False бошад, он блокро мегузаронад.

Фарз мекунем, тағйирёбандае дорем, ки синни шахсро ифода мекунад ва мехоҳем донем, ки оё ӯ ба синни овоздиҳӣ расидааст. Коди зерин инро месанҷад:

voting.py

age = 19

if age >= 18:  
    print("Шумо ба синни овоздиҳӣ расидаед!")  

Python месанҷад, ки оё қимати age аз 18 калонтар ё ба он баробар аст. Азбаски ҳамин тавр аст, даъвати print() дар дохили блок иҷро мешавад:

Шумо ба синни овоздиҳӣ расидаед!  

Фосилаи дохилӣ дар дастурҳои if ҳамон нақшеро мебозад, ки дар даврҳои for дошт. Агар шарт иҷро шавад, ҳамаи сатрҳои дохили блоки if иҷро мешаванд. Агар шарт иҷро нашавад, тамоми блок гузаронида мешавад.

Дар блоки баъди if метавонед ҳар қадар сатри коде, ки лозим аст, нависед. Биёед барои шахсе, ки ба синни овоздиҳӣ расидааст, сатри дигаре илова кунем ва пурсем, ки оё ӯ барои овоздиҳӣ сабти ном кардааст:

age = 19

if age >= 18:  
    print("Шумо ба синни овоздиҳӣ расидаед!")  
    print("Оё шумо аллакай барои овоздиҳӣ сабти ном кардаед?")  

Шарт иҷро мешавад ва ҳар ду даъвати print() дар дохили блоканд. Аз ин рӯ, ҳар ду сатр чоп мешаванд:

Шумо ба синни овоздиҳӣ расидаед!  
Оё шумо аллакай барои овоздиҳӣ сабти ном кардаед?  

Агар қимати age аз 18 хурдтар мебуд, ин барнома чизе чоп намекард.

Дастурҳои if-else

Аксар вақт мехоҳед ҳангоми иҷро шудани шарт як амал ва дар ҳамаи ҳолатҳои дигар амали дигареро иҷро кунед. Сохтори if-else дар Python инро имконпазир мекунад.

Блоки if-else ба дастури содаи if монанд аст, аммо else имкон медиҳад, ки амал ё маҷмуи амалҳоеро муайян кунед, ки ҳангоми иҷро нашудани шарт иҷро мешаванд.

Агар шахс ба синни овоздиҳӣ расида бошад, ҳамон паёми пешинаро нишон медиҳем. Аммо ин дафъа барои шахсе, ки ҳанӯз ба ин син нарасидааст, низ паём илова мекунем:

age = 17

if age >= 18:  
    print("Шумо ба синни овоздиҳӣ расидаед!")  
    print("Оё шумо аллакай барои овоздиҳӣ сабти ном кардаед?")  
else:  
    print("Мутаассифона, синни шумо ҳанӯз барои овоздиҳӣ намерасад.")  
    print("Лутфан, баробари 18-сола шудан барои овоздиҳӣ сабти ном кунед!")  

Агар шарт дуруст бошад, блоки якуми даъватҳои print() иҷро мешавад. Агар натиҷаи санҷиш False бошад, блоки else иҷро мешавад.

Ин дафъа age аз 18 хурдтар аст. Аз ин рӯ, шарт иҷро намешавад ва коди блоки else иҷро мешавад:

Мутаассифона, синни шумо ҳанӯз барои овоздиҳӣ намерасад.  
Лутфан, баробари 18-сола шудан барои овоздиҳӣ сабти ном кунед!  

Ин код дуруст кор мекунад, зеро танҳо ду ҳолати имконпазир вуҷуд дорад: шахс ё ба синни овоздиҳӣ расидааст ё ҳанӯз нарасидааст.

Сохтори if-else барои ҳолатҳое мувофиқ аст, ки мехоҳед Python ҳатман яке аз ду амали имконпазирро иҷро кунад. Дар чунин занҷираи сода ҳамеша яке аз ду блок иҷро мешавад.

Занҷираи if-elif-else

Аксар вақт лозим мешавад, ки бештар аз ду ҳолати имконпазирро санҷед. Барои ин метавонед аз сохтори if-elif-else истифода баред.

Python дар занҷираи if-elif-else танҳо як блокро иҷро мекунад. Он шартҳоро бо навбат месанҷад, то ба аввалин шарти дуруст расад. Ҳамин ки шарте иҷро шуд, коди мувофиқи он иҷро мешавад ва Python санҷишҳои боқимондаро мегузаронад.

Бисёр ҳолатҳои воқеӣ бештар аз ду шарти имконпазир доранд. Масалан, боғи фароғатиеро тасаввур кунед, ки барои гурӯҳҳои синнии гуногун нархҳои гуногун дорад:

  • Барои кӯдакони то 4-сола даромад ройгон аст.
  • Барои шахсони аз 4 то 18-сола, бе дохил кардани 18-солаҳо, нарх 25 доллар аст.
  • Барои шахсони 18-сола ва калонтар нарх 40 доллар аст.

Чӣ гуна бо дастури if нархи даромадро барои як шахс муайян кунем? Коди зерин гурӯҳи синнии шахсро санҷида, паёмеро бо нархи даромад чоп мекунад:

amusement_park.py

age = 12

if age < 4:  
    print("Нархи даромад барои шумо $0 аст.")  
elif age < 18:  
    print("Нархи даромад барои шумо $25 аст.")  
else:  
    print("Нархи даромад барои шумо $40 аст.")  

Санҷиши if муайян мекунад, ки оё синни шахс аз 4 камтар аст. Агар шарт иҷро шавад, паёми мувофиқ чоп мешавад ва Python санҷишҳои боқимондаро мегузаронад.

Сатри elif аслан санҷиши дигари if аст, ки танҳо ҳангоми иҷро нашудани санҷиши пешина санҷида мешавад. Дар ин нуқтаи занҷира мо аллакай медонем, ки шахс ақаллан 4-сола аст, зеро шарти аввал иҷро нашуд.

Агар синни шахс аз 18 камтар бошад, паёми мувофиқ чоп мешавад ва Python блоки else-ро мегузаронад. Агар ҳам if ва ҳам elif нодуруст бошанд, Python коди блоки else-ро иҷро мекунад.

Дар ин мисол натиҷаи санҷиши if — False аст, аз ин рӯ блоки он иҷро намешавад. Аммо натиҷаи санҷиши elif — True аст, зеро 12 аз 18 хурдтар аст. Бинобар ин, коди он иҷро мешавад.

Натиҷа як ҷумлаест, ки ба корбар нархи даромадро хабар медиҳад:

Нархи даромад барои шумо $25 аст.  

Барои синни аз 17 боло ҳар ду санҷиши аввал нодуруст мешаванд. Дар чунин ҳолат блоки else иҷро шуда, нархи даромад 40 доллар мешавад.

Ба ҷойи он ки нархро дар дохили блокҳои if-elif-else чоп кунем, метавонем дар ин занҷира танҳо нархро муайян карда, баъд аз он як даъвати print() нависем:

age = 12

if age < 4:  
    price = 0  
elif age < 18:  
    price = 25  
else:  
    price = 40

print(f"Нархи даромад барои шумо ${price} аст.")  

Сатрҳои дохили блокҳо мувофиқи синни шахс қимати price-ро муайян мекунанд. Пас аз муайян шудани нарх, даъвати алоҳидаи print(), ки берун аз блокҳо ҷойгир аст, аз ин қимат истифода бурда, паёмро нишон медиҳад.

Натиҷаи ин код бо мисоли пешина яксон аст, аммо вазифаи занҷираи if-elif-else мушаххастар шудааст. Он танҳо нархро муайян мекунад.

Ин шакли кодро тағйир додан ҳам осонтар аст. Барои иваз кардани матни паём танҳо як даъвати print()-ро тағйир додан лозим мешавад, на се даъвати алоҳидаро.

Истифодаи якчанд блоки elif

Дар код метавонед ҳар қадар блоки elif, ки лозим аст, истифода баред. Масалан, агар боғи фароғатӣ барои калонсолони солхӯрда тахфиф ҷорӣ кунад, метавонед як санҷиши дигар илова кунед, то муайян намоед, ки шахс ба ин тахфиф мувофиқ аст ё не.

Фарз мекунем, ҳар шахси 65-сола ё калонтар нисфи нархи муқаррарӣ, яъне 20 доллар мепардозад:

age = 12

if age < 4:  
    price = 0  
elif age < 18:  
    price = 25  
elif age < 65:  
    price = 40  
else:  
    price = 20

print(f"Нархи даромад барои шумо ${price} аст.")  

Қисми зиёди код тағйир наёфтааст. Блоки дуюми elif акнун пеш аз таъин кардани нархи пурраи 40 доллар месанҷад, ки синни шахс аз 65 камтар аст.

Аҳамият диҳед, ки қимати блоки else бояд ба 20 иваз шавад, зеро танҳо шахсони 65-сола ё калонтар ба ин блок мерасанд.

Ҳазф кардани блоки else

Python талаб намекунад, ки дар охири ҳар занҷираи if-elif ҳатман блоки else бошад.

Баъзан else муфид аст. Дар ҳолатҳои дигар, истифодаи як дастури иловагии elif, ки шарти мушаххасро месанҷад, равшантар мебошад:

age = 12

if age < 4:  
    price = 0  
elif age < 18:  
    price = 25  
elif age < 65:  
    price = 40  
elif age >= 65:  
    price = 20

print(f"Нархи даромад барои шумо ${price} аст.")  

Блоки охирини elif ҳангоми 65-сола ё калонтар будани шахс нархро ба 20 доллар баробар мекунад. Ин нисбат ба блоки умумии else каме равшантар аст.

Бо ин тағйирот барои иҷро шудани ҳар блоки код бояд шарти мушаххаси он дуруст бошад.

Блоки else ҳамаи ҳолатҳои боқимондаро фаро мегирад: ҳар ҳолате, ки ба ягон санҷиши пешинаи if ё elif мувофиқат накардааст, ба он меафтад. Ин ҳолатҳо баъзан метавонанд маълумоти нодуруст ё ҳатто зарароварро низ дар бар гиранд.

Агар шарти охирини мушаххасе дошта бошед, истифодаи elif-и охирин ва ҳазфи else-ро баррасӣ кунед. Бо ин роҳ боварии бештар пайдо мекунед, ки код танҳо дар шароити муайяншуда иҷро мешавад.

Санҷидани ҳамаи шартҳои зарурӣ

Занҷираи if-elif-else имкониятҳои зиёд дорад, аммо он танҳо вақте мувофиқ аст, ки иҷро шудани як шарт кофӣ бошад. Ҳамин ки Python шарти дурустро меёбад, санҷишҳои боқимондаро мегузаронад.

Ин рафтор муфид аст, зеро иҷрои кодро самаранок мекунад ва имкон медиҳад, ки яке аз ҳолатҳои мушаххас интихоб шавад.

Аммо баъзан санҷидани ҳамаи шартҳои зарурӣ муҳим аст. Дар чунин ҳолат бояд як қатор дастурҳои содаи if-ро бе elif ё else истифода баред.

Ин усул вақте мувофиқ аст, ки якчанд шарт метавонанд ҳамзамон True бошанд ва мехоҳед барои ҳар шарти дуруст амали мувофиқ иҷро шавад.

Боз ба мисоли питсахона бармегардем. Агар муштарӣ питсаеро бо ду илова фармоиш диҳад, бояд ҳар дуи онҳоро ба питса илова кунед:

toppings.py

requested_toppings = ['mushrooms', 'extra cheese']

if 'mushrooms' in requested_toppings:  
    print("Занбӯруғ илова мешавад.")

if 'pepperoni' in requested_toppings:  
    print("Пепперонӣ илова мешавад.")

if 'extra cheese' in requested_toppings:  
    print("Панири иловагӣ илова мешавад.")

print("\nПитсаи шумо тайёр шуд!")  

Мо аз рӯйхати иловаҳои фармоишшуда оғоз мекунем. Дастури якуми if месанҷад, ки оё муштарӣ занбӯруғ фармоиш додааст. Агар дода бошад, паёми тасдиқкунанда чоп мешавад.

Санҷиши пепперонӣ як дастури дигари мустақили if аст. Аз ин рӯ, он новобаста аз натиҷаи санҷиши пешина иҷро мешавад.

Дастури охирини if низ новобаста аз ду натиҷаи аввал месанҷад, ки оё панири иловагӣ фармоиш дода шудааст.

Ҳар дафъа ҳангоми иҷрои барнома ин се санҷиши мустақил анҷом дода мешаванд.

Азбаски ҳамаи шартҳо санҷида мешаванд, ҳам занбӯруғ ва ҳам панири иловагӣ ба питса илова мешаванд:

Занбӯруғ илова мешавад.  
Панири иловагӣ илова мешавад.

Питсаи шумо тайёр шуд!  

Агар аз занҷираи if-elif-else истифода мебурдем, ин код дуруст кор намекард, зеро пас аз аввалин шарти дуруст санҷиши шартҳои боқимондаи занҷира қатъ мешуд:

requested_toppings = ['mushrooms', 'extra cheese']

if 'mushrooms' in requested_toppings:  
    print("Занбӯруғ илова мешавад.")  
elif 'pepperoni' in requested_toppings:  
    print("Пепперонӣ илова мешавад.")  
elif 'extra cheese' in requested_toppings:  
    print("Панири иловагӣ илова мешавад.")

print("\nПитсаи шумо тайёр шуд!")  

Санҷиши 'mushrooms' аввалин шарти дуруст аст, бинобар ин занбӯруғ илова мешавад. Аммо мавҷудияти 'extra cheese' ва 'pepperoni' дигар санҷида намешавад, зеро Python дар чунин занҷира пас аз аввалин шарти дуруст шартҳои дигарро намесанҷад.

Иловаи якуми муштарӣ ба питса илова мешавад, аммо иловаҳои дигараш нодида мемонанд:

Занбӯруғ илова мешавад.

Питсаи шумо тайёр шуд!  

Агар мехоҳед танҳо як блоки код иҷро шавад, занҷираи if-elif-else-ро истифода баред. Агар лозим бошад, ки якчанд блок иҷро шаванд, як қатор дастурҳои мустақили if нависед.

Худатон бисанҷед

5-3. Рангҳои мавҷуди бегона — 1: Тасаввур кунед, ки дар бозӣ як мавҷуди бегона зада шудааст. Тағйирёбандае бо номи alien_color созед ва ба он яке аз қиматҳои 'green', 'yellow' ё 'red'-ро диҳед.

  • Дастури if нависед, ки сабз будани ранги мавҷудро месанҷад. Агар ранги он сабз бошад, паёме чоп кунед, ки бозигар 5 хол гирифтааст.
  • Як нусхаи барномаро тавре нависед, ки шарти if иҷро шавад ва нусхаи дигарро тавре нависед, ки иҷро нашавад. Нусхаи дуюм чизе чоп намекунад.

5-4. Рангҳои мавҷуди бегона — 2: Мисли машқи 5-3 барои мавҷуд ранг интихоб карда, занҷираи if-else нависед.

  • Агар ранги мавҷуд сабз бошад, паёме чоп кунед, ки бозигар барои задани он 5 хол гирифтааст.
  • Агар ранги он сабз набошад, паёме чоп кунед, ки бозигар 10 хол гирифтааст.
  • Як нусхаи барномаро бо иҷро шудани блоки if ва нусхаи дигарро бо иҷро шудани блоки else нависед.

5-5. Рангҳои мавҷуди бегона — 3: Занҷираи if-else-и машқи 5-4-ро ба занҷираи if-elif-else табдил диҳед.

  • Агар мавҷуд сабз бошад, паёме чоп кунед, ки бозигар 5 хол гирифтааст.
  • Агар мавҷуд зард бошад, паёме чоп кунед, ки бозигар 10 хол гирифтааст.
  • Агар мавҷуд сурх бошад, паёме чоп кунед, ки бозигар 15 хол гирифтааст.
  • Се нусхаи барнома нависед ва бовар ҳосил кунед, ки барои ҳар ранг паёми мувофиқ чоп мешавад.

5-6. Марҳилаҳои ҳаёт: Занҷираи if-elif-else нависед, ки марҳилаи ҳаёти шахсро муайян мекунад. Ба тағйирёбандаи age қимате диҳед ва баъд:

  • Агар синни шахс аз 2 камтар бошад, чоп кунед, ки ӯ тифл аст.
  • Агар синнаш ақаллан 2, аммо аз 4 камтар бошад, чоп кунед, ки ӯ кӯдаки хурдсол аст.
  • Агар синнаш ақаллан 4, аммо аз 13 камтар бошад, чоп кунед, ки ӯ кӯдак аст.
  • Агар синнаш ақаллан 13, аммо аз 20 камтар бошад, чоп кунед, ки ӯ наврас аст.
  • Агар синнаш ақаллан 20, аммо аз 65 камтар бошад, чоп кунед, ки ӯ калонсол аст.
  • Агар синнаш 65 ё бештар бошад, чоп кунед, ки ӯ солхӯрда аст.

5-7. Меваҳои дӯстдошта: Рӯйхати меваҳои дӯстдоштаатонро созед. Сипас як қатор дастурҳои мустақили if нависед, ки мавҷудияти меваҳои муайянро дар рӯйхат месанҷанд.

  • Се меваи дӯстдоштаатонро дар рӯйхате бо номи favorite_fruits нигоҳ доред.
  • Панҷ дастури if нависед. Ҳар яке бояд мавҷудияти як навъи меваро дар рӯйхат санҷад. Агар мева дар рӯйхат бошад, блоки if бояд паёме чоп кунад, масалан: «Шумо бананро хеле дӯст медоред!»

Истифодаи дастурҳои if бо рӯйхатҳо

Бо якҷо кардани рӯйхатҳо ва дастурҳои if корҳои ҷолибро анҷом додан мумкин аст.

Метавонед қиматҳои махсусеро муайян кунед, ки бояд аз дигар унсурҳои рӯйхат фарқкунанда коркард шаванд. Метавонед шароити тағйирёбандаро, ба монанди мавҷудияти маҳсулоти муайян дар тарабхона дар давоми басти корӣ, самаранок идора кунед. Инчунин метавонед ба санҷидани он оғоз кунед, ки коди шумо дар ҳамаи ҳолатҳои имконпазир мувофиқи интизорӣ кор мекунад.

Санҷидани унсурҳои махсус

Ин боб аз мисоли содае оғоз шуд, ки тарзи муносибат бо қимати махсуси 'bmw'-ро нишон медод. Ин қимат бояд аз дигар унсурҳои рӯйхат бо шакли дигар чоп мешуд.

Акнун, ки санҷишҳои шартӣ ва дастурҳои if-ро дар сатҳи асосӣ фаҳмидед, биёед муфассалтар бинем, ки чӣ гуна қиматҳои махсусро дар рӯйхат пайдо карда, дуруст коркард кардан мумкин аст.

Мисоли питсахонаро идома медиҳем. Ҳангоми тайёр кардани питса, ҳар боре ки иловае гузошта мешавад, питсахона паёмеро нишон медиҳад.

Барои ин рӯйхати иловаҳои фармоишдодаи муштариро сохта, бо ёрии давр илова шудани ҳар кадомро хабар додан мумкин аст:

toppings.py

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']

for requested_topping in requested_toppings:  
    print(f"Илова мешавад: {requested_topping}.")

print("\nПитсаи шумо тайёр шуд!")  

Натиҷа сода аст, зеро ин код танҳо як даври одии for мебошад:

Илова мешавад: mushrooms.  
Илова мешавад: green peppers.  
Илова мешавад: extra cheese.

Питсаи шумо тайёр шуд!  

Аммо агар қаламфури сабз дар питсахона тамом шавад, чӣ мекунем? Дастури if дар дохили даври for метавонад ин ҳолатро дуруст коркард кунад:

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']

for requested_topping in requested_toppings:  
    if requested_topping == 'green peppers':  
        print("Мутаассифона, ҳоло қаламфури сабз тамом шудааст.")  
    else:  
        print(f"Илова мешавад: {requested_topping}.")

print("\nПитсаи шумо тайёр шуд!")  

Ин дафъа пеш аз илова кардани ҳар маҳсулоти фармоишшуда онро месанҷем. Дастури if муайян мекунад, ки оё муштарӣ қаламфури сабз фармоиш додааст. Агар ҳа, паёмеро нишон медиҳем, ки сабаби илова нашудани онро мефаҳмонад.

Блоки else таъмин мекунад, ки ҳамаи иловаҳои дигар ба питса гузошта шаванд.

Натиҷа нишон медиҳад, ки ҳар иловаи фармоишшуда дуруст коркард мешавад:

Илова мешавад: mushrooms.  
Мутаассифона, ҳоло қаламфури сабз тамом шудааст.  
Илова мешавад: extra cheese.

Питсаи шумо тайёр шуд!  

Санҷидани холӣ набудани рӯйхат

То ин ҷо мо дар бораи ҳар рӯйхате, ки бо он кор кардем, як фарзияи сода доштем: ҳар рӯйхат ақаллан як унсур дорад.

Ба наздикӣ ба корбарон имкон медиҳем, ки маълумоти рӯйхатро худашон ворид кунанд. Он вақт дигар наметавонем фарз кунем, ки ҳар бор ҳангоми иҷрои давр рӯйхат ҳатман унсуре дорад.

Дар чунин ҳолат пеш аз иҷрои даври for санҷидани холӣ будан ё набудани рӯйхат муфид аст.

Масалан, пеш аз тайёр кардани питса месанҷем, ки рӯйхати иловаҳои фармоишшуда холӣ аст ё не. Агар холӣ бошад, аз муштарӣ мепурсем, ки оё воқеан питсаи бе илова мехоҳад. Агар рӯйхат холӣ набошад, питсаро мисли мисолҳои пешина тайёр мекунем:

requested_toppings = []

if requested_toppings:  
    for requested_topping in requested_toppings:  
        print(f"Илова мешавад: {requested_topping}.")  
    print("\nПитсаи шумо тайёр шуд!")  
else:  
    print("Оё мутмаин ҳастед, ки питсаи бе илова мехоҳед?")  

Ин дафъа аз рӯйхати холии иловаҳо оғоз мекунем. Ба ҷойи фавран иҷро кардани даври for, аввал санҷиши кӯтоҳе анҷом медиҳем.

Вақте номи рӯйхат ҳамчун шарт дар дастури if истифода мешавад, Python рӯйхати дорои ақаллан як унсурро ҳамчун True ва рӯйхати холиро ҳамчун False арзёбӣ мекунад.

Агар requested_toppings холӣ набошад, ҳамон даври for-и мисоли пешинаро иҷро мекунем. Агар холӣ бошад, паёме чоп мекунем ва аз муштарӣ мепурсем, ки оё воқеан питсаи бе илова мехоҳад.

Дар ин ҳолат рӯйхат холӣ аст, бинобар ин натиҷа чунин мешавад:

Оё мутмаин ҳастед, ки питсаи бе илова мехоҳед?  

Агар рӯйхат холӣ набошад, натиҷа илова шудани ҳар маҳсулоти фармоишшударо нишон медиҳад.

Истифодаи якчанд рӯйхат

Одамон метавонанд қариб ҳар чизеро дархост кунанд, махсусан вақте сухан дар бораи иловаҳои питса меравад. Агар муштарӣ дар питсааш картошкаи бирён хоста бошад, чӣ мекунед?

Бо истифода аз рӯйхатҳо ва дастурҳои if метавонед пеш аз иҷрои амал санҷед, ки дархост қобили иҷро аст ё не.

Биёед пеш аз тайёр кардани питса дархостҳои ғайриодиро санҷем. Мисоли зерин ду рӯйхат дорад. Якум рӯйхати иловаҳои дар питсахона мавҷудбуда ва дуюм рӯйхати иловаҳои фармоишдодаи корбар аст.

Ин дафъа пеш аз илова кардани ҳар унсури requested_toppings мавҷудияти онро дар рӯйхати маҳсулоти дастрас месанҷем:

available_toppings = ['mushrooms', 'olives', 'green peppers',  
                      'pepperoni', 'pineapple', 'extra cheese']

requested_toppings = ['mushrooms', 'french fries', 'extra cheese']

for requested_topping in requested_toppings:  
    if requested_topping in available_toppings:  
        print(f"Илова мешавад: {requested_topping}.")  
    else:  
        print(f"Мутаассифона, мо {requested_topping} надорем.")

print("\nПитсаи шумо тайёр шуд!")  

Аввал рӯйхати иловаҳои дар питсахона мавҷудбударо муайян мекунем. Агар интихоби иловаҳо доимӣ бошад, ин рӯйхатро метавон ҳамчун кортеж низ нигоҳ дошт.

Сипас рӯйхати иловаҳои фармоишдодаи муштариро месозем. Дар ин мисол як дархости ғайриодӣ вуҷуд дорад: 'french fries', яъне картошкаи бирён.

Баъд рӯйхати иловаҳои фармоишшударо давр мезанем. Дар дохили давр месанҷем, ки ҳар илова воқеан дар рӯйхати маҳсулоти дастрас ҳаст ё не. Агар бошад, онро ба питса илова мекунем.

Агар иловаи дархостшуда дастрас набошад, блоки else иҷро мешавад. Он ба корбар хабар медиҳад, ки кадом илова мавҷуд нест.

Ин код натиҷаи равшану иттилоотӣ медиҳад:

Илова мешавад: mushrooms.  
Мутаассифона, мо french fries надорем.  
Илова мешавад: extra cheese.

Питсаи шумо тайёр шуд!  

Бо чанд сатри код як ҳолати воқеиро хеле самаранок идора кардем!

Худатон бисанҷед

5-8. Салом, мудир: Рӯйхати панҷ ё зиёда номи корбарӣ созед, ки номи 'admin' низ дар он бошад. Тасаввур кунед, ки коде менависед, ки пас аз ворид шудани ҳар корбар ба вебсайт ба ӯ салом медиҳад.

Рӯйхатро давр зада, барои ҳар корбар паёми салом чоп кунед.

  • Агар номи корбар 'admin' бошад, паёми махсусе чоп кунед, масалан: «Салом, мудир! Мехоҳед гузориши ҳолатро бинед?»
  • Дар ҳолатҳои дигар паёми умумӣ чоп кунед, масалан: «Салом, Ҷейден! Ташаккур, ки боз ворид шудед».

5-9. Корбарон нестанд: Ба файли hello_admin.py санҷиши if илова кунед, то муайян шавад, ки рӯйхати корбарон холӣ нест.

  • Агар рӯйхат холӣ бошад, паёми «Мо бояд чанд корбар пайдо кунем!» чоп шавад.
  • Ҳамаи номҳои корбариро аз рӯйхат хориҷ кунед ва бовар ҳосил кунед, ки паёми дуруст чоп мешавад.

5-10. Санҷиши номҳои корбарӣ: Барномае созед, ки тарзи таъмин кардани нотакрории номҳои корбариро дар вебсайтҳо тақлид мекунад.

  • Рӯйхати панҷ ё зиёда номи корбариро бо номи current_users созед.
  • Рӯйхати дигари панҷ номи корбариро бо номи new_users созед. Бовар ҳосил кунед, ки як ё ду номи нав дар рӯйхати current_users низ ҳастанд.
  • Рӯйхати new_users-ро давр зада, санҷед, ки ҳар номи нав пештар истифода шудааст ё не. Агар истифода шуда бошад, паёме чоп кунед, ки шахс бояд номи дигар ворид кунад. Агар истифода нашуда бошад, хабар диҳед, ки ин ном дастрас аст.
  • Муқоиса бояд калон ё хурд будани ҳарфҳоро нодида гирад. Агар 'John' истифода шуда бошад, 'JOHN' набояд қабул шавад. Барои ин нусхаи current_users-ро созед, ки ҳамаи номҳои он бо ҳарфҳои хурд навишта шудаанд.

5-11. Ададҳои тартибӣ: Ададҳои тартибӣ ҷойгоҳи чизеро дар пайдарпайӣ нишон медиҳанд. Масалан, дар англисӣ 1st маънои «якум» ва 2nd маънои «дуюм»-ро дорад. Дар ададҳои аз 1 то 9, ба ғайр аз 1, 2 ва 3, ҳамаи шаклҳои тартибӣ бо th анҷом меёбанд.

  • Ададҳои аз 1 то 9-ро дар рӯйхат нигоҳ доред.
  • Рӯйхатро давр занед.
  • Дар дохили давр занҷираи if-elif-else-ро истифода баред, то барои ҳар адад пасванди дурусти тартибии англисӣ чоп шавад.
  • Натиҷа бояд 1st 2nd 3rd 4th 5th 6th 7th 8th 9th бошад ва ҳар кадом дар сатри алоҳида чоп шавад.

Услуби навиштани дастурҳои if

Дар ҳамаи мисолҳои ин боб шумо одатҳои хуби навиштани кодро дидед.

Ягона тавсияи PEP 8 барои шакли навиштани санҷишҳои шартӣ ин аст, ки дар ҳар ду тарафи операторҳои муқоиса, ба монанди ==, >= ва <=, як фосила гузоред.

Масалан, ин шакл:

if age < 4:  

аз шакли зерин беҳтар аст:

if age<4:  

Чунин фосилагузорӣ ба тарзи тафсири код аз ҷониби Python таъсир намерасонад. Он танҳо хондани кодро барои шумо ва дигарон осон мекунад.

Худатон бисанҷед

5-12. Услуби навиштани дастурҳои if: Барномаҳоеро, ки дар ин боб навиштед, аз назар гузаронед ва бовар ҳосил кунед, ки санҷишҳои шартиро бо услуби мувофиқ навиштаед.

5-13. Ғояҳои шумо: Ҳоло шумо нисбат ба оғози ин китоб барномасози қобилтар шудаед. Акнун беҳтар мефаҳмед, ки ҳолатҳои воқеӣ чӣ гуна дар барномаҳо моделсозӣ мешаванд. Шояд аллакай дар бораи масъалаҳое фикр мекунед, ки онҳоро бо барномаҳои худ ҳал кардан мумкин аст.

Ҳар ғояи наверо, ки дар бораи масъалаҳои ҳалшаванда пайдо мекунед, сабт намоед, то бо беҳтар шудани малакаҳои барномасозӣ ба онҳо баргардед. Дар бораи бозиҳое, ки мехоҳед нависед, маҷмуи додаҳое, ки мехоҳед таҳқиқ кунед, ва веббарномаҳое, ки мехоҳед созед, фикр кунед.

Хулоса

Дар ин боб шумо навиштани санҷишҳои шартиро омӯхтед, ки натиҷаашон ҳамеша True ё False мешавад. Шумо навиштани дастурҳои содаи if, занҷираҳои if-else ва if-elif-else-ро омӯхтед.

Бо ин сохторҳо шартҳои заруриро муайян карда, санҷидед, ки онҳо дар барнома кай иҷро мешаванд. Омӯхтед, ки чӣ гуна баъзе унсурҳои рӯйхатро аз унсурҳои дигар фарқкунанда коркард кунед ва ҳамзамон аз самаранокии даври for истифода баред.

Инчунин тавсияҳои услубии Python-ро аз нав баррасӣ кардед, то барномаҳои ҳарчи мураккабтари шумо ҳанӯз ҳам нисбатан осон хонда ва фаҳмида шаванд.

Дар боби 6 шумо бо луғатҳои Python — dict шинос мешавед. Луғат ба рӯйхат монанд аст, аммо имкон медиҳад, ки қисмҳои маълумотро ба ҳам пайваст кунед.

Шумо сохтани луғатҳо, давр задани онҳо ва истифодаашонро дар якҷоягӣ бо рӯйхатҳо ва дастурҳои if меомӯзед. Донистани луғатҳо имкон медиҳад, ки доираи боз ҳам васеътари ҳолатҳои воқеиро моделсозӣ кунед.

пешина
аз 13
навбатӣ