Python: деректен өз есебіңізге дейін
Елу бес сабақ: алғашқы сандардан бастап ашық деректі өзі алып, санап, кесте бойынша жаңарып тұратын есепке дейін. Курс сабақ артынан сабақ шығып жатыр. Барлық сабақ ашық: тегін және тіркелусіз.
·
Барлық сабақ ашық: оқу үшін тіркелудің қажеті жоқ.
-
Екінші тегін курс: дерек пен ЖИ үшін Python
Алаңның екінші тегін курсы — 55 сабақ: деректен өзі жаңарып тұратын есепке дейін. Неге Python, неге веб емес, дерек пен ЖИ, оқырман нақты нені санайтыны: бағалар 3,48 есе өсті, мың теңге тұрған нәрсе 3481 теңге тұрады. Тіркеусіз әрі төлемсіз, үш тілде.
-
Өз бетіңізше санау не үшін керек: бағалар, теңге және бір сұрақ
Python курсының бірінші сабағы. Кітапхана орнатудың қажеті жоқ: дайын бағдарлама ресми сандарды өзі алып, солар бойынша санайды. Қазақстанда бағалар 2010 жылдан бері 3,48 есе өсті: мың теңге тұрған нәрсе 3481 теңге тұрады. Ал өңірдің басқа елдерінде сол шоктан кейін инфляция үш есе төмен. Бұл — өзіңіз санаудың алғашқы себебі.
-
Жұмыс орны: Python, жобаның ортасы және алғашқы іске қосу
Python курсының екінші сабағы. Тілді орнатамыз, жобаның ортасын жасаймыз, кешегі бағдарламаны соған көшіреміз. Өлшенді: ортаға орнатылған пакет сырттан көрінбейді — `ModuleNotFoundError`, — орта дәл сол үшін жасалады. `.venv` қалтасы 17 МБ тартады және репозиторийге кетпейді.
-
Алғашқы бағдарлама: сандар, жолдар және шығыс
Python курсының үшінші сабағы. Дүкен чегінде санаймыз: бірдің орнына екі бөлу, қалдық, дәреже, содан кейін жолдар — қиып алу, ауыстыру, кесу, жабыстыру. Оның үстіне санды мәтін ішіне қоятын f-жолдар: 52 751 740 084 727 ₸ разрядпен, 11,4% үтірден кейінгі бір таңбамен.
-
Айнымалылар мен типтер: «260» мен 260 неге екі басқа нәрсе
Python курсының төртінші сабағы. Бөтен файлдан дерек мәтінмен келеді, ал мәтін санға айналмайынша оны қосудың мағынасы жоқ: «260» + «260» 260260 береді. Ақшаның басты ережесі де өлшенді: 0.1 + 0.2 0.3-ке тең емес, ал Decimal — тең. Қоса None, сондай-ақ == пен is.
-
Тізім мен кортеж: өзін санай алатын чек
Python курсының бесінші сабағы. Тізімдегі бағалар: индекстер, тілімдер, өзгерту, сома мен ең үлкені — бірде-бір циклсіз. Бәрі сүрінетін айырма өлшенді: sorted() жаңа тізім қайтарады, .sort() бастапқысын өзгертіп, None береді. Сондай-ақ өзгеруден бас тартатын кортеж: TypeError.
-
Сөздік: рет үмітінің орнына байланыс
Python курсының алтыншы сабағы. Атау бойынша бағалар: қатенің орнына `get`, аралаудың орнына `in`, дайын кесте ретінде `items()`. Өлшенді: жоқ кілтке жүгіну — бос емес, `KeyError`; Counter себетті бір жолда санайды, ал defaultdict кәдімгі сөздік құлайтын жерде нөлді өзі қояды.
-
Шарттар: if, elif, else — және жоқ сан
Python курсының жетінші сабағы. Сан өздігінен ештеңе айтпайды: 11,4% — көп пе, аз ба? Шарт салыстырады да, жолды таңдайды. Инфляцияда өлшенді: 2025 жылы Қазақстан — 11,4%, әлем — 3,0%. Қоса деректе жұмыс істеудің басты ережесі: қатардағы жетіспейтін мән — нөл емес, оны `is None` арқылы тексереді.
-
Циклдер: for, range және zip үнсіз істейтін нәрсе
Python курсының сегізінші сабағы. Отыздың орнына бір салыстыру: цикл қатарды өзі аралайды, `continue` дерегі жоқ жылды аттайды, жинақтауыш орташаны санайды — бес жылда 11,52%. Қоса екі тұзақ: `zip` қатарды қысқасы бойынша үнсіз қияды, ал шығуы жоқ `while` шеттен өтіп құлайды.
-
Функциялар: есепке ат және қате санды ұстайтын assert
Python курсының тоғызыншы сабағы. Қатарды аралау ат алады да, кез келген қатарды санайды: Қазақстан — 11,52%, әлем — 4,68%. Қоса бос қатарда есепті тоқтататын `assert`, `sorted(key=)` ішіндегі `lambda` және өлшенген тұзақ: тақырыптағы `into=[]` мәндерді жинап қояды.
-
Қателер мен ерекше жағдайлар: файл жоқ па, әлде ішінде қоқыс па
Python курсының оныншы сабағы. Басқа жүйеден экспортталған деректің бес жолынан үшеуі ғана талданды: үтір — нүкте, ал «дерек жоқ» пен бос жол сан емес. `try/except/else/finally`, бір жолмен жасалатын өз қате атауы және басты білік — traceback-ті соңғы жолынан бастап, төменнен жоғары оқу.
-
Файлдар мен pathlib: бөтен машинада сынбайтын жол
Python курсының он бірінші сабағы. Бағдарлама деректі жазады, оны жол-жолмен оқиды да, есепті қасына қояды. Жолды жолдарды жабыстыру емес, `Path` құрайды: Windows-та сол жол кері қиғаш сызықпен жазылады. Ал кодтауды әрқашан көрсетеді — онсыз оны сіз емес, жүйе таңдайды.
-
CSV: өріс ішіндегі үтір және Excel қоятын белгі
Python курсының он екінші сабағы. `2022,15.0,"шок, соғыс, логистика"` жолында `split(",")` үштің орнына бес бөлік береді — өлшенді. csv модулі үшеу береді. Қоса `DictReader`, міндетті `newline=""` және Excel белгісі: бағана орнында тұрса да, `row["year"]` `KeyError` жауабын береді.
-
JSON: бірінші сабақта сеніммен талдаған API жауабы
Python курсының он үшінші сабағы. Дүниежүзілік банктің жауабы — екі элементтен тұратын тізім: қызметтік бөлік пен жазбалар. Оны қолмен талдап, есепті үнсіз бұзатын нәрсені табамыз: `null` `None` болады, ал сан-кілттер JSON арқылы айналып келгенде жол болып оралады — `2025` кетеді, `"2025"` келеді.
-
Күндер мен уақыт: 45 күн, уақыт белдеуі және екі түрлі оқылатын пішім
Python курсының он төртінші сабағы. 15 қаңтар мен 1 наурыздың арасы — 45 күн, оны сіз емес, `timedelta` санайды. Плюс екі тұзақ: `01.02.2026` бірде-бір қатесіз екі пішіммен де талданады — қаңтар мен ақпан болып, — ал белдеусіз уақытты белдеуі бардан алуға болмайды, әрі Python мұны тіке айтады.
-
Жиындар: `&`, `-`, `|` және екінші выгрузкада жоқ нәрсе
Python курсының он бесінші сабағы. Тізімдегі бес атаудың әртүрлісі — төртеу: жиын қайталауды үнсіз жеп қояды. Оның есесіне екі деректер экспортына қойылған үш сұрақ үш таңбамен шешіледі: `&` — екеуінде де не бар, `-` — не қалмаған, `|` — бәрі бірге. Плюс `{}` — бос жиын емес, бос сөздік.
-
Итераторлар мен генераторлар: 800 984 байтқа қарсы 208
Python курсының он алтыншы сабағы. Жүз мың квадрат тізіммен төрт мегабайтқа жуық орын алады, генератормен — 376 байт: барлық сандарымен қоса өлшенді. Айырма қалай санауда емес, мәндердің қашан пайда болуында. Плюс басты қате: генератор бір реттік, әрі онымен екінші аралау үнсіз бос нәтиже береді.
-
Өз модулің мен пакетің: `import`, `__name__` және стандарттыны ауыстырған файл
Python курсының он жетінші сабағы. Шолу бір ұзын файлға дейін өсті, әрі оны атауларға бөлетін кез келді. `import` бөтен файлды тұтас орындайды, `__name__` модульді іске қосылғаннан ажыратады, ал қасындағы өз `csv.py` файлы стандарттысын үнсіз ауыстырады.
-
Python-нан HTTP: статус, байттар және екі түрлі «болмады»
Python курсының он сегізінші сабағы. Ұлттық банкке сұраныс: 200, `text/xml`, 11 407 байт — әрі бұл жол емес, `bytes`. Плюс қателерді өңдеуді бұзатын айырма: `HTTPError` — сервер «жоқ» деп жауап берді, `URLError` — жауап мүлде болмады.
-
XML талдау: жолдың орнына ағаш, тегтің орнына `None` және аттың алдындағы мекенжай
Python курсының он тоғызыншы сабағы. Ұлттық банктің сол жауабы, бірақ оны талдағыш оқиды: 39 валюта, бағам жолдың кесегі емес, тег аты бойынша. Плюс екі тұзақ: жоқ тег үшін `find` `None` қайтарады, ал аттар кеңістігі бар тег қысқа атымен мүлде табылмайды.
-
Бөтен серверге сыпайылық: таймаут, шегінісі бар қайталау және кэш
Python курсының жиырмасыншы сабағы. Бөтен серверге сыпайылық үш нәрседен тұрады: таймаут — мәңгі күтпеу, кідірісі екі еселенетін қайталау — құлағанды ұрмау, кэш — екі рет сұрамау. Өз серверімізде өлшенді: төрт оқу, бір сұраныс.
-
SQLite: қайта жазылған файлдың орнына тарих, жабыстырудың орнына `?`
Python курсының жиырма бірінші сабағы. Файлдың орнына дерекқор: жол қосылады, кешегілері қала береді, ал күнді қайта жүргізу қосарлама жасамайды. Плюс екі өлшенген тұзақ: мәнді сұранысқа жабыстыру бір валютаның орнына бүкіл кестені берді, ал `commit`-сіз жабу жазбаны жоғалтты.
-
Python-нан SQL: `GROUP BY`, `JOIN` және нөл емес бос жауап
Python курсының жиырма екінші сабағы. Дерекқор өзі санайды: `GROUP BY` әр валютаға бір жол береді, `JOIN` екінші кестеден атауын қояды, ал ай — күн жолының алғашқы жеті таңбасынан жасалған топ. Плюс тұзақ: бос жауап бойынша `avg` нөл емес, `None` қайтарады.
-
Кесте: аргументтер, журнал, құлып және қайтару коды
Python курсының жиырма үшінші сабағы. Түнде сізсіз жұмыс істейтін бағдарлама: кодты түзетудің орнына аргументтер, `print` орнына деңгейлері бар журнал, қатар жүретін екі іске қосуға қарсы құлып және кестенің жалғыз оқитын нәрсесі — қайтару коды. Плюс cron, launchd пен systemd.
-
Тізім бар болса, pandas не үшін керек: өлшем не көрсетті
Python курсының жиырма төртінші сабағы. pandas модулі басталуға тиіс сұрақтан басталады: ол соған тұра ма. Жауапты сенім емес, өлшем береді. pandas қырық есе жылдам болатын жер, тек екі есе болатын жер, кәдімгі циклден баяу болатын жер, жады неге тұрады — және кесте қашан керек екені.
-
Модуль сөздігі: кесте сөйлейтін сегіз сөз
Сабақ емес, pandas модулінің қалың бөлігі алдындағы анықтамалық бет. Сегіз сөз — кесте, баған, белгі мен позиция, маска, жетіспейтін мән, кілт, түр және пішін — үш жолдық бір кестеде. Қазір бір рет оқып шығыңыз да, сөз кездескенде қайта оралыңыз: қасында ол қай сабақта түсіндірілетіні жазулы.
-
DataFrame және Series: нөмірдің орнына қолтаңба
Python курсының жиырма бесінші сабағы. Жол белгісі бар кесте тізімше жауап бермейді: `loc` белгі бойынша, `iloc` нөмір бойынша алады, ал екі қатардың қосындысы рет бойынша емес, жыл бойынша есептеледі. `DataFrame` мен `Series`, индекс, тілімдер және өзі пайда болатын `NaN`.
-
Оқу және жазу: CSV, JSON және SQL бір жолмен
Python курсының жиырма алтыншы сабағы. Басқа жүйеден келген файл — бұл бөлгіш, бөлшектегі үтір, BOM және өз белгісі бар жетіспейтін мән; циклде әрқайсысын есте ұстау керек, ал `read_csv`-те бұлар — параметрлер. `read_csv`, `to_csv`, `read_sql` және `to_sql`, әрі файлдың кесте туралы нені ұмытатыны.
-
Таңдау және сүзгілер: тек керегін қалдыру
Python курсының жиырма жетінші сабағы. Маска — «иә» мен «жоқтан» тұратын баған, әрі кесте сонымен тұтас сүзіледі, циклсіз. `df[маска]`, `.loc[маска, бағандар]`, `&`, `|`, `~` және міндетті жақшалар, `isin`, `between`, `str`, әрі сүзгіден кейін қайта саналмайтын белгілер.
-
Топтау және жиынтық сандар: санаттар мен айлар бойынша санау
Python курсының жиырма сегізінші сабағы. `groupby` — сұрақ болып жазылған цикл: кестені кілт бойынша кесу, әр бөлігін санау, кері жинау. `agg` пен өз баған аттары, екі кілт, кестеде жоқ кілт, үлес үшін `transform`, `count` пен `size`-дың айырмасы және үнсіз жоғалатын топтар.
-
Кестелерді біріктіру: екі дереккөзді кілт бойынша жалғау
Python курсының жиырма тоғызыншы сабағы. `merge` екі кестені кілт бойынша біріктіреді — әрі әдепкі күйінде жұбы табылмаған жолдарды үнсіз лақтырып тастайды. `inner` мен `left`, `indicator`, белгі бойынша `join`, жолдарды көбейтетін қайталанған кілт және оны ұстайтын `validate`.
-
Лас дерек: жетіспейтін мәндер, қайталаулар және түрлер
Python курсының отызыншы сабағы. Дерек сынып келеді: сандар жол болып, қала үш түрлі жазылып, егіз жол мен бос ұяшық қоса келеді. `isna`, `errors="coerce"` бар `to_numeric`, `astype`, `drop_duplicates` — және сабақтың басты сұрағы: жетіспейтін мәнді тастау ма, толтыру ма, әрі оның құны қандай.
-
Кестедегі уақыт: ресемплинг, жылжымалы орташа және адалдық
Python курсының отыз бірінші сабағы. Күн индексі тізім істей алмайтынды істейді: `asfreq` жоқ күндерді көрсетеді, `resample` күндерді аптаға жинайды, `rolling` тегістейді. Әрі тегістеудің өлшенген құны: ауқым екі есе кемиді, ал нағыз шыңның күні қатардан жоғалып кетеді.
-
matplotlib: бірінші график және терезе емес, файл
Python курсының отыз екінші сабағы. Өткен сабақтағы қатарды саламыз: парақ пен осьтер, сызық, белгілер, тор, аңыз — әрі экранда бірде-бір терезесіз файлға сақтау. Плюс бәрінде графикті бұзатын үш нәрсе: `Agg`, «алдымен саламыз, сосын сақтаймыз» реті және жабылмаған фигура.
-
Графикпен қалай өтірік айтпау керек: шкала, нөл және белгілер
Python курсының отыз үшінші сабағы. Сол екі сан: нөлден бағана 1.31 есе биік, ось сегізден басталса — 4.86 есе. Сол бір сызық кесіндісі: кең парақта 14°, тар парақта 73°. Пайыз бен пайыздық тармақ, қатардың қай бөлігін алу, әр графикте тұруға тиіс бес нәрсе — және өзін өзі тексеретін график.
-
Есеп-бет: кесте, сурет және дереккөз бір файлда
Python курсының отыз төртінші сабағы. HTML-ді деректен жинаймыз: жол жалғаудың орнына үлгі, кестеден келгеннің бәріне `html.escape`, файл ішіндегі сурет — және өзін өзі тексеретін бет. Бір файл, ол кез келген браузерде ашылады, PDF-ке басылады және хатпен бір тіркеме болып кетеді.
-
Есептегі сандар: пішімдер, дөңгелектеу және өлшем бірліктері
Python курсының отыз бесінші сабағы. `1234567.891` пен `1 234 567,89` — бір сан және екі түрлі есеп. Пішім жолдары, бізше бөлгіштер, жұпқа қарай дөңгелектейтін `round`, ақшаға арналған `Decimal` және дөңгелектелген сомаға тең келмейтін дөңгелектелгендердің сомасы.
-
Өзі жаңаратын жиынтық: конвейер тұтас
Python курсының отыз алтыншы сабағы және есеп туралы модульдің соңы. Бір `main()` ішіндегі төрт қадам, уақытша файл арқылы жазу, зардапсыз қайталау және қайтару коды; тапсырмада `--dry-run` режимі қосылады. Әрі бәрі сол үшін жасалған ереже: қолжетімсіз дереккөз кешегі есепті өшірмей, орнында қалдырады.
-
Орташа, медиана, шашырау: орташа қашан өтірік айтады
Python курсының отыз жетінші сабағы және ақша модулінің басы. Он ел, бір жыл: орташа 20.48 %, медиана 13.88 % — әрі орташа он елдің сегізіндегіден жоғары. Бір елді алыңыз: орташа 5.76-ға ығысады, медиана 0.03-ке. `mean`, `median`, `std` және өлшемді нәтижеге дейін таңдайтын ереже.
-
Инфляция — көбейткіш: теңге қанша тұрған
Python курсының отыз сегізінші сабағы. Он жылдың мөлшерлемелерін қоссаңыз, 92.98 % болады — әрі бұл қате жауап: баға 141.98 %-ға өсті, өйткені пайыздар көбейтіледі. `cumprod` арқылы индекс, көбейткіш, жылдық орташа мөлшерлеме және 2014 жылғы мың теңге — одан 2024-ке 413 теңге ғана қалған.
-
Өзіңіздің инфляцияңыз: сіздің себет пен ресми себет
Python курсының отыз тоғызыншы сабағы. «Инфляция 8 %, ал менде бәрі екі есе қымбаттады» — екеуі де бір мезгілде шындық, ажырататыны — салмақтар. Себет, әр позицияның шығыстағы үлесі, өсімге қосқан үлесі — және себет 69.8 %-ға өскен жерде жай орташа неге 84.6 % уәде ететіні.
-
Ақша қайдан шығады: қолма-қол, депозит, несие
Python курсының қырқыншы сабағы. Елдегі бүкіл ақшаның тоғыз пайызын ғана Ұлттық Банк басып шығарған; қалған тоқсан бірі — банк несие бергенде пайда болған шоттағы жазбалар. Агрегаттар матрёшка ретінде, ЖІӨ теңгесіне қанша ақша, ақша көбейткіші — және бұл туралы заңда не жазылған.
-
Ресми статистиканы қалай оқу керек
Python курсының қырық бірінші сабағы. Ресми кестенің бір жолында сол бір бағалар туралы бес сан тұр, әрі бесеуі де дұрыс. Әрқайсысы қандай сұраққа жауап беретіні, жарияланымда басылмаған себеттің салмақтарын қалай алуға болатыны және Дүниежүзілік банкте неге басқа сан шығатыны.
-
Сыртқы және өзінікі: бір шок — әртүрлі баға
Python курсының қырық екінші сабағы. 2022 жылы әлемдік тамақ 14.9 %-ға қымбаттады — бәріне бірдей. Он көршінің инфляциясы 8.6-дан 72.3 %-ға дейін шықты, сегіз есе айырма. Екі әдеттегі себеп — бағам мен ақша — тексеріледі, әрі бір ел жауапты жылжытады, ақшада таңбасын ауыстырады.
-
Бірінші модель: сызықтық регрессия
Python курсының қырық үшінші сабағы. Он алты жылдық баға арқылы жүргізілген түзу R² 0.927 береді әрі «өткен жылдағыдай» деген ережеден жүздік тармаққа ұтылады. Оның қатесі кездейсоқ емес, пішіні бар: плюс, минус, плюс. Логарифмдегі түзу екі есе аз қателеседі, өйткені баға көбейтіледі.
-
Үйрету және тексеру: өз деректерінде неге өлшеуге болмайды
Python курсының қырық төртінші сабағы. Сол модель, сол дерек: үйреткен жылдарында қате 2.48, көрмегенінде 35.99. Уақыт бойынша кесудің орнына кездейсоқ кесу 5.37 көрсетеді әрі өтірік айтады. Бесінші дәрежелі көпмүше дерлік мінсіз үйренеді де, түзуден үш есе нашар қателеседі.
-
Сыныптау және қате матрицасы
Python курсының қырық бесінші сабағы. Модель «иә» не «жоқ» деп жауап береді: келесі жылы инфляция он пайыздан жоғары бола ма. Дәлдігі 0.75, ал әрқашан «жоқ» дейтін модельдікі 0.675 — әрі қате матрицасы сонда жиырма алты жоғары жылдың жиырмасы өткізіп жіберілгенін көрсетеді.
-
Модель қайда бітеді
Python курсының қырық алтыншы сабағы, модельдер модулінің соңы. Сол түзу 2100 жылға 146 206 индексін уәде етеді — әрі бірде-бір жауабын күмәнді деп белгілемейді. Шекараны қолмен жазуға тура келеді: неде үйренді, қайда тексерілді, қандай ауқымда қателеседі, қай жылдан кейін қолданылмайды.
-
Өз компьютеріңіздегі тілдік модель: Ollama және алғашқы жергілікті сұраныс
Python курсының қырық жетінші сабағы. Ollama орнатып, API кілтінсіз алғашқы жауапты аламыз және сұраныстың бүкіл жолын талдаймыз: бағдарлама JSON-ды localhost мекенжайына жібереді, HTTP жауабын тексереді, содан кейін ғана модель мәтінін алады. Жергілікті портты сыртқа өзіңіз ашпасаңыз, дерек компьютеріңізде қалады.
-
Промпт — код: параметрлер және қайталанымдылық
Python курсының қырық сегізінші сабағы. Модельге сұранысты кездейсоқ бір жолмен жазуды тоқтатамыз: рөлді, міндетті, деректі және шектеуді бөлеміз, temperature, seed пен жауап шегін бекітеміз, содан кейін бүкіл сұранысты нәтижемен бірге сақтаймыз. Бірдей сұраныс тексерілетін тәжірибеге айналады, бірақ мәтіннің байтқа дейін бірдей болуына уәде бермейді.
-
Құрылымды жауап: модель JSON-ы және оны тексеру
Python курсының қырық тоғызыншы сабағы. Модельден еркін мәтін емес, берілген схемаға сай JSON сұраймыз, оны стандартты `json` модулімен талдап, `jsonschema` кітапханасымен тексереміз. Синтаксис, құрылым және факт деп бөлінген үш шекара әдемі жазылған қатені есепке өткізбейді.
-
Модель өз дерегімізде: әр санды салыстыру
Python курсының елуінші сабағы. Модельге тұрақты дереккөз идентификаторлары бар шағын кесте береміз, құрылымды тұжырым қабылдап, әр санды бастапқы жазбамен салыстырамыз. Модель сөзбен атауды ұсынады, ал тексерілген мәнді, бірлікті және жылды қорытынды мәтінге код қояды.
-
Модельге нені сеніп тапсыруға болмайды: факт, қорытынды, себеп
Python курсының елу бірінші сабағы. Бақылауды, есептелген қорытындыны және себеп туралы түсіндірмені бөлеміз. Код санды тексеріп, есепті қайталай алады, ал сенімді естілетін себеп дербес дәлел мен адам тексеруінсіз тек болжам болып қалады.
-
pytest тесттері: конвейер уәделерін тексеру
Python курсының елу екінші сабағы. Жоба ережелерін автоматты тесттерге айналдырамыз: қалыпты жағдайды, шекараны және күтілетін қатені тексеріп, бүкіл жинақты бір пәрменмен іске қосамыз.
-
Тип аннотациялары және mypy: іске қосуға дейінгі қате
Python курсының елу үшінші сабағы. Дерек пішінін функция сигнатурасында сипаттап, `None` мәнін тексеру арқылы типті тарылтамыз және үйлеспейтін мәндерді бағдарлама орындалмай тұрып `mypy` көмегімен табамыз.
-
Тәуелділіктер: «менде істейді» емес, қайталанатын орта
Python курсының елу төртінші сабағы. Тікелей тәуелділіктерді толық lock-файлдан бөліп, Python нұсқасын бекітеміз және бір жылдан кейін де қайта жиналатын таза орта құрамыз.
-
Финал: тексеру, жариялау және қайта орындай алу
Python бастапқы курсының елу бесінші әрі соңғы сабағы. Барлық тексеруді бір шлюзге жинап, есептің өзгермейтін каталогын құрамыз, оны тек сәтті тексеруден кейін жариялап, дереккөз бен жинау уақытын оқырманға көрсетеміз.