Python тіліндегі шартты if операторы. Синтаксис, else/elif блоктары, мысалдар

Бағдарламалауды үйрену барысында көбінесе өмірде қолдану оңай емес бағдарламаларды жасау қажет. Өйткені, мезгіл-мезгіл нұсқауларды белгілі бір жағдайларда ғана орындауға тура келеді. Мұны бағдарламада жүзеге асыру үшін барлық тілдерде басқару мәлімдемелері бар. Олардың көмегімен кодтың орындалу ағынын басқаруға, циклдар құруға немесе белгілі бір шарт ақиқат болғанда ғана белгілі бір әрекеттерді орындауға болады.

Бүгін біз белгілі бір жағдайға ағымдағы жағдайды тексеретін және осы ақпаратқа сүйене отырып, одан әрі әрекеттер туралы шешім қабылдайтын if операторы туралы айтатын боламыз.

Бақылау мәлімдемелерінің түрлері

Жалпы, егер бұл бағдарлама ағынын басқаратын жалғыз оператор емес. Оның өзі сияқты үлкенірек операторлар тізбегінің құрамдас бөлігі бола алады.

Оның орындалу процесін басқаратын циклдар мен операторлар да бар. Бүгін біз тек шартты оператор және ол қатыса алатын тізбектер туралы сөйлесетін боламыз.

Бағдарламалауда тармақталу деген бар. Бұл белгілі бір шарт ақиқат болған жағдайда ғана орындалатын командалар тізбегін білдіреді. Критерийлердің өзі әртүрлі болуы мүмкін:

  1. Айнымалының белгілі бір мәнге теңдігі.
  2. Белгілі бір әрекетті орындау.
  3. Қолданба күйі (тасаланған немесе жоқ).

Спектр әлдеқайда үлкен болуы мүмкін. Шартты сөйлемдер бірнеше түрге бөлінеді:

  1. Бір бұтақпен. Яғни, бір тексеру жүргізіледі, нәтижесінде белгілі бір әрекеттер орындалады.
  2. Екі немесе одан да көп бұтақтары бар. Егер 1-шарт дұрыс болса, 2-шартты тексеріңіз. Егер ол дұрыс болса, 3-ті тексеріңіз. Сонымен, қажет болғанша көп тексеруді орындаңыз.
  3. Бірнеше шарттармен. Мұнда бәрі қарапайым. Аудармашы бірнеше шарттарды немесе олардың біреуін тексереді.

егер мәлімдеме

if операторының құрылымы барлық тілдерде ұқсас. Дегенмен, Python-да оның синтаксисі басқаларынан біршама ерекшеленеді:

егер шарт:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Алдымен оператордың өзі жарияланады, содан кейін оның жұмыс істей бастайтын шарты жазылады. Шарт ақиқат немесе жалған болуы мүмкін.

Бұдан кейін командалары бар блок келеді. Егер ол бірден орындалатын критерийге сәйкес келсе, онда сәйкес командалар тізбегі if блогы деп аталады. Ондағы командалардың кез келген санын пайдалануға болады.

Назар! Барлық if блок командаларындағы шегініс бірдей өлшемде болуы керек. Блок шекаралары шегіністермен анықталады. 

Тілдік құжаттамаға сәйкес шегініс 4 интервалды құрайды. 

Бұл оператор қалай жұмыс істейді? Аудармашы if сөзін көргенде, өрнекті пайдаланушы белгілеген критерийлерге сәйкес дереу тексереді. Егер бұлай болса, онда ол нұсқауларды іздеп, оларды орындауға кіріседі. Әйтпесе, осы блоктағы барлық пәрмендер өткізіп жіберіледі.

Шарттан кейінгі оператор шегініссіз болса, ол if блогы ретінде қарастырылмайды. Біздің жағдайымызда бұл сызық . Сондықтан, тексеру нәтижесіне қарамастан, бұл жол орындалады.

Міне, осы оператордың жұмыс істеу мысалы үшін код үзіндісі.

сан = int(input("Санды енгізіңіз:"))

саны > 10 болса:

    басып шығару («Сан 10-нан көп»)

Бұл бағдарлама пайдаланушыдан санды сұрайды және оның 10-нан үлкен екенін тексереді. Олай болса, ол сәйкес ақпаратты қайтарады. Мысалы, егер пайдаланушы 5 санын енгізсе, онда бағдарлама жай ғана аяқталады, және бұл.

Бірақ егер сіз 100 санын көрсетсеңіз, аудармашы оның оннан көп екенін түсінеді және оны хабарлайды.

Назар! Біздің жағдайда, егер шарт жалған болса, бағдарлама тоқтайды, өйткені нұсқаудан кейін ешқандай команда берілмейді.

Жоғарыдағы кодта бір ғана пәрмен бар. Бірақ олардың саны бұдан да көп. Жалғыз талап - шегініс жасау.

Енді осы командалар тізбегін талдап көрейік.

сан = int(input("Санды жаз:"))

саны > 10 болса:

    басып шығару («бірінші жол»)

    басып шығару («екінші жол»)

    басып шығару («үшінші жол»)

print («Енгізілген нөмірге қарамастан орындалатын жол»)

басып шығару («Соңғы қолданба»)

2, 5, 10, 15, 50 мәндерін енгізсеңіз, нәтиже қандай болатынын болжап көріңіз.

Көріп отырғаныңыздай, егер пайдаланушы енгізген сан оннан көп болса, онда үш жол шығады + біреуі «Әр уақытта іске қосу ...» және бір «Аяқтау» мәтіні бар, ал оннан аз болса, тек біреуі ғана басқа мәтін. Егер шын болса, тек 3,4,5-жолдар орындалады. Дегенмен, соңғы екі жол пайдаланушы қандай санды көрсетсе де жазылады.

Егер сіз мәлімдемелерді тікелей консольде қолдансаңыз, нәтиже басқаша болады. Тексеру шартын көрсеткеннен кейін Enter пернесін бассаңыз, аудармашы бірден көп жолды режимді қосады.

Келесі командалар тізбегін жаздык делік.

>>>

>>> n = 100

>>> егер n > 10 болса:

...

Осыдан кейін >>> орнына эллипсис қойылғанын көреміз. Бұл көп жолды енгізу режимі қосылғанын білдіреді. Қарапайым сөзбен айтқанда, Enter пернесін бассаңыз, нұсқаулықтың екінші кезеңінің кірісіне ауысасыз. 

Ал бұл блоктан шығу үшін блокқа тағы бір құрылыс қосу керек if.

>>>

>>> n = 100

>>> егер n > 10 болса:

… басып шығару («nv 10»)

...

Шарт дұрыс болмаса, бағдарлама аяқталады. Бұл мәселе, себебі пайдаланушы мұндай бағдарламаны сәтсіздікке байланысты жабылған деп қабылдауы мүмкін. Сондықтан пайдаланушыға кері байланыс беру қажет. Ол үшін сілтеме қолданылады егер басқаша болса.

өрнек операторы егер басқаша болса

Бұл оператор сілтемені жүзеге асыруға мүмкіндік береді: егер өрнек белгілі бір ережеге сәйкес келсе, осы әрекеттерді орындаңыз, ал егер жоқ болса, басқалары. Яғни, бағдарлама ағынын екі жолға бөлуге мүмкіндік береді. Синтаксис интуитивті:

егер шарт:

    # егер блоктау

    мәлімдеме 1

    мәлімдеме 2

    және тағы басқа

басқа:

    # басқа блок

    мәлімдеме 3

    мәлімдеме 4

    және тағы басқа:

Бұл оператордың қалай жұмыс істейтінін түсіндірейік. Біріншіден, ағында стандартты оператор орындалады ию, сәйкес келетінін тексеру жағдай «шын» немесе «жалған». Әрі қарайғы әрекеттер тексеру нәтижелеріне байланысты. Егер шын болса, шарттан кейін нұсқаулар тізбегіндегі нұсқау тікелей орындалады. ию, егер ол жалған болса, онда тағы

Осылайша сіз қателерді өңдей аласыз. Мысалы, пайдаланушы радиусты енгізуі керек. Әлбетте, бұл тек қосу белгісі бар сан болуы мүмкін немесе бұл нөлдік мән. Егер ол 0-ден аз болса, оң санды енгізуді сұрайтын хабарлама шығару керек. 

Міне, осы тапсырманы орындайтын код. Бірақ бұл жерде бір қателік бар. Қайсысын табуға тырысыңыз. 

радиус = int(input(“Радиусты енгізіңіз:”))

егер радиус >= 0 болса:

    print(“Шеңбер = “, 2 * 3.14 * радиус)

    басып шығару(“Аудан = “, 3.14 * радиус ** 2)

    басқа:

        басып шығару («Оң санды енгізіңіз»)

Шегіністің сәйкес келмеуі қатесі. Егер және Басқа оларсыз немесе олардың саны бірдей болуы керек (олардың кірістірілгеніне немесе салынбауына байланысты).

Басқа пайдалану жағдайын берейік (мұнда барлығы оператордың туралануымен дұрыс болады) – құпия сөзді тексеретін қолданба элементі.

құпия сөз = енгізу («Құпия сөзді енгізіңіз:»)

егер құпия сөз == «sshh»:

    басып шығару («Қош келдіңіз»)

басқа:

    басып шығару («Кіруге тыйым салынды»)

Құпия сөз sshh болса, бұл нұсқаулық адамды одан әрі өткізіп жібереді. Әріптер мен сандардың кез келген басқа комбинациясы болса, онда ол «Кіруге тыйым салынды» хабарын көрсетеді.

оператор-өрнек if-elif-else

Тек бірнеше шарт дұрыс болмаса, блоктағы оператор орындалады. тағы. Бұл өрнек осылай жұмыс істейді.

егер_1-шарт:

    # егер блоктау

    мәлімдеме

    мәлімдеме

    қосымша мәлімдеме

elif шарты_2:

    # бірінші элиф блогы

    мәлімдеме

    мәлімдеме

    қосымша мәлімдеме

elif шарты_3:

    # екінші элиф блогы

    мәлімдеме

    мәлімдеме

    қосымша мәлімдеме

...

тағы

    мәлімдеме

    мәлімдеме

    қосымша мәлімдеме

Сіз кез келген қосымша шарттар санын көрсете аласыз.

Кірістірілген мәлімдемелер

Бірнеше шарттарды жүзеге асырудың тағы бір жолы - if блогына қосымша шарт тексерулерін енгізу.

Оператор if басқа шарт блогының ішінде

gre_score = int(input («Ағымдағы несие лимитін енгізіңіз»))

per_grad = int(input("Несие рейтингіңізді енгізіңіз: "))

егер әр_grad > 70:

    # сыртқы if блогы

        егер gre_score > 150 болса:

            # ішкі if блогы

    басып шығару («Құттықтаймыз, сіз несие алдыңыз»)

басқа:

    басып шығару («Кешіріңіз, сіз несие ала алмайсыз»)

Бұл бағдарлама несие рейтингін тексереді. Егер ол 70-тен аз болса, бағдарлама пайдаланушының несие алуға құқығы жоқ деп хабарлайды. Егер ол үлкен болса, ағымдағы несие лимиті 150-ден жоғары екенін тексеру үшін екінші тексеру орындалады. Иә болса, несие берілгені туралы хабар көрсетіледі.

Егер екі мән де жалған болса, пайдаланушының несие алу мүмкіндігі жоқ екендігі туралы хабарлама көрсетіледі. 

Енді сол бағдарламаны біраз қайталап көрейік.

gre_score = int(input («Ағымдағы шекті енгізіңіз: «))

per_grad = int(input("Несиелік ұпайды енгізіңіз: "))

егер әр_grad > 70:

    егер gre_score > 150 болса:

        басып шығару («Құттықтаймыз, сіз несие алдыңыз»)

    басқа:

        басып шығару («Несие лимиті төмен»)

басқа:

    басып шығару («Кешіріңіз, сіз несие алуға құқығыңыз жоқ»)

Кодтың өзі өте ұқсас, бірақ кірістірілген if шарты жалған болып шықса, алгоритмді де береді. Яғни, картадағы лимит жеткіліксіз, бірақ несие тарихы жақсы, «Сіздің несиелік рейтингіңіз төмен» хабары көрсетіледі.

шарт ішіндегі if-else операторы тағы

Тест ұпайларына қарап оқушының бағасын анықтайтын тағы бір бағдарлама жасайық.

балл = int(input("Ұпайыңызды енгізіңіз:"))

ұпай >= 90 болса:

    басып шығару («Тамаша! Сіздің бағаңыз А»)

басқа:

    ұпай >= 80 болса:

басып шығару («Тамаша! Сіздің бағаңыз В»)

    басқа:

ұпай >= 70 болса:

    басып шығару («Жақсы! Сіздің бағаңыз C»)

басқа:

    ұпай >= 60 болса:

print («Сіздің бағаңыз D. Материалды қайталаған жөн.»)

    басқа:

басып шығару («Сіз емтиханнан өте алмадыңыз»)

Қолданба алдымен ұпайдың 90-нан үлкен немесе тең екенін тексереді. Иә болса, ол А бағасын қайтарады. Егер бұл шарт жалған болса, келесі тексерулер орындалады. Алгоритм бір қарағанда бірдей дерлік екенін көреміз. Сондықтан ішін тексерудің орнына тағы комбинациясын қолданған дұрыс if-elif-else.

Сонымен оператор if өте маңызды функцияны орындайды – ол қажет болған жағдайда ғана кодтың белгілі бір бөліктерінің орындалуын қамтамасыз етеді. Онсыз бағдарламалауды елестету мүмкін емес, өйткені ең қарапайым алгоритмдердің өзі «солға барсаң, оны табасың, ал оңға барсаң, анау-мынаны істеу керек» сияқты шанышқыларды қажет етеді.

пікір қалдыру