Shanraq.org Shanraq.org
Тоқтай алатын Python циклдері
Қоғам

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

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

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

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

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

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

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

Үш тапсырманы үш бөлек жолмен тексеруге болады. Ал 300 болса ше? Цикл әр элементке бір тексеруді қайталайды. Бірақ қашан тоқтайтынын білмеген оқушы бағдарламаны тоқтатпай қоюы не соңғы тапсырманы өткізіп алуы мүмкін. Әуелі үш карточка мен бос тізімді қараймыз.

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

Тізім мәндердің ретін сақтайды. for done in values кезекті мәнді алады; цикл денесінің бір орындалуы қайталау қадамы деп аталады. Санауыш total табылған True санын ұстайды. Инвариант — әр қадамға дейін де, кейін де дұрыс болатын уәде: total қаралған карточкалардағы орындалғандар санына тең. Тоқтау тізімнің ақырлы ұзындығынан шығады: соңғы элементтен кейін алатын ештеңе жоқ. Бос тізімде дене бір де бір рет орындалмай, нәтиже 0 болады.

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

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

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

False, True, False карточкаларын солдан оңға қойыңыз. Біріншіден кейін total=0, екіншіден кейін 1, үшіншіден кейін әлі 1. Код осы трассаны шығарады. values мәнін [] етіп көріңіз: аралық сан болмайды, тек Completed: 0 шығады. Қағаз кестені экранмен салыстырыңыз. for циклінде Python келесі элементке өзі өтеді; орынды бөлек арттырмайсыз.

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

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

tasks = [{"done": False}, {"done": True}, {"done": True}]
count = 0
for task in tasks:
    if task["done"]:
        count += 1
print(count)

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

2

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

total = 0 циклдің ішінде тұрса, санауыш әр карточкада қайта басталады. done тексермей әр элемент үшін арттырсаңыз, орындалғандарды емес, тізім ұзындығын санайсыз. Екі қатеге де False, False, True қарсы мысалын жасаңыз.

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

0.3 нұсқасының қағаз санауышын count_done функциясына ауыстырыңыз. Оны cases.json файлындағы төрт бақылау карточкасымен салыстырыңыз; бастапқы үш тапсырма 1 беруі тиіс.

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

Жоба сөздіктерінің тізіміне count_done жазыңыз. Төрт жағдайды тексеріңіз: бос тізім, түгел False, үш аралас мән және түгел True. Аралас жағдайда әр аралық санды көрсетіңіз. Содан кейін функция ішіндегі шығаруды алып, санды қайтарыңыз: тест күтілетін нәтижемен салыстыра алады.

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

Енді тапсырманы емес, сөредегі borrowed=True белгісі бар кітаптарды санаңыз. Шартта не өзгереді, инвариантта не сақталады? Бос сөре неге 0 беретінін айтыңыз.

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

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

Келесі сабақ

Келесі: Көп тапсырмаға арналған тізімдер мен сөздіктер

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

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

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

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

Пікірлер (0)

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