Shanraq.org Shanraq.org
Python шарттары және шекараны тексеру
Қоғам

Информатика: өз цифрлық көмекшімізді жасаймыз 30-сабақ (барлығы 38)

Python шарттары және шекараны тексеру

Еске салу шектерін `if`, `elif`, `else` тармақтарына көшіріп, орындалған тапсырманың қате тармаққа түспеуін тексереміз.

Картадағы орнымыз

Бұл 72 сабақтың 30-сі, Python блогының (27–38) бөлігі. Тірек сызба тексерілетін өтулерді көрсетеді. 0.3 қағаз келісіміндегі еске салудың бес нәтижесі мен ойдан алынған бастапқы тапсырмаларды жалғастырамыз.

Python шарттары және шекараны тексеру

Жағдай және сұрақ

Алдыңғы өрнек тек «иә» не «жоқ» деді. Ал көмекшіге бес түрлі хабар керек: орындалды, мерзім жоқ, мерзім өтті, еске сал немесе әлі ерте. Дәл бір хабарды қалай таңдап, ерекше жағдайды жібермейміз? Қағаздағы келісімде тексеру реті маңызды еді; Python-да ол жолдардың ретіне айналады.

Жаңа сөздерді анық түсінейік

Шарт — True не False беретін өрнек. Тармақталу сол жауапқа қарап жол таңдайды. if бірінші шартты, elif алдыңғысы жалған болса келесісін тексереді, else қалғанын алады. Бірдей шегіністі жолдар блок болып орындалады; Python-да шегініс тілдің жазу ережесінің бөлігі. Шекаралық жағдай дәл шекте тұрады, мысалы екі күн. Бірін-бірі жоққа шығаратын жауаптар бір тапсырмаға дәл бір мәртебе берілетінін білдіреді.

Сабақтың тірек сигналы

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

Қадамдап талдаймыз

Үстелге −1, 0, 2, 3 карточкаларын қойыңыз. Әрқайсын мысал тармақтарынан өткізіңіз: −1 days < 0 жерінде тоқтайды; 0 мен 2 days <= 2 жеріне жетеді; 3 else тармағына қалады. Енді done=True деп ойлаңыз: қағаз келісімі DONE жауабын барлық салыстырудан бұрын талап етеді. Төменгі қысқа мысал тек шектерді көрсету үшін done күйін әлі қоспайды; жоба функциясында оны бірінші қойыңыз.

Болжаңыз және тексеріңіз

Нәтиже блогын жабыңыз. Атаулар мәнін жол сайын бақылап, әріп регистрі мен жол ретін қоса нақты мәтінді болжаңыз. Содан кейін ғана кодты step-03 каталогында python3 арқылы орындап, таңба бойынша салыстырыңыз. Бір кірісті өзгертіп, іске қоспай тұрып жаңа болжам жазыңыз. Айырма болса, жауабыңызды кейін ыңғайламай, алғашқы ауытқыған жолды табыңыз.

for days in (-1, 0, 2, 3):
    if days < 0:
        status = "OVERDUE"
    elif days <= 2:
        status = "REMIND"
    else:
        status = "NOT_YET"
    print(days, status)

Күтілетін нәтиже

-1 OVERDUE
0 REMIND
2 REMIND
3 NOT_YET

Қатені табыңыз

days <= 2 шартын бірінші қойсаңыз, мерзімі өткен −1 REMIND болады. Төрт бөлек if бірнеше жауап шығаруы мүмкін. Ретті түзетіп, if/elif/else тізбегін қолданыңыз; содан кейін санмен салыстырмай тұрып мерзімнің жоқтығын бөлек өңдеңіз.

Жобаға енгізілетін өзгеріс

0.3 нұсқасының кестесін return қолданатын функцияға көшіріңіз, әр тармақ ішінде жауапты басып шығармаңыз. Шығаруды шақыратын кодқа қалдырыңыз: сонда бір функцияны консольде де, тестте де қолданасыз.

Тапсырма және дәлел

done мен days алып, қағаз келісімінің бес мәртебесінің бірін қайтаратын толық функция жазыңыз. Іске қоспай тұрып −1, 0, 1, 2, 3, None және done=True үшін кесте салыңыз. Сыныптасыңызға тек код пен тест карточкаларын беріңіз: ол жауаптарды ауызша көмексіз алуы керек.

Жаңа жағдайға көшіру

Билет сататын жүйеде «төленді», «бағасы жоқ», «ақша жетпейді», «дайын» мәртебелері болуы мүмкін. Сатып алу төленіп қойса, қай шарт бірінші тексерілуі тиіс? Оның done=True жағдайына ұқсастығын түсіндіріңіз.

1, 7 және 30 күннен кейін қайталау

1 күннен кейін бетті ашпай ереже мен бір шекара мысалын еске түсіріңіз. 7 күннен кейін жаңа мысалдағы қатені сыныптасыңызға түсіндіріңіз. 30 күннен кейін жоба тестін қайталап, бұрынғы жазба мен нәтиженің сақталғанын тексеріп, ережені өзге міндетке қолданыңыз.

Келесі сабақ

Келесі: Тоқтай алатын Python циклдері

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Жоба дәлелін тексеру

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

Тексеру үшін кіру керек. Кіру

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.