Езикът, който учиш
Проблем
Защо точно Python
Езиците за програмиране са стотици. Всеки става за нещо, но не за всичко еднакво добре. Преди да отделиш месеци на един от тях, честно е да знаеш къде ще го ползваш.
Python (чете се „пайтън“) е език, на който програмите се пишат кратко и се четат почти като текст:
- данни и изкуствен интелект: анализ на таблици, графики, обучение на модели. Повечето библиотеки за машинно обучение се ползват от Python;
- автоматизация: малки програми, които преименуват хиляди файлове, попълват таблици или проверяват сайт всяка сутрин;
- уеб сайтове и услуги: частта на сървъра, с библиотеки като Django и FastAPI;
- наука и обучение: в много университети първият език е Python, а учените го ползват за сметки и опити.
Python е от 1991 г. Една версия излиза всяка година, а готовите библиотеки се броят в стотици хиляди.
Идеята
От текст до програма
Програмата, която пишеш, е обикновен текст във файл. Ето една цяла програма:
print("Поръчка №1024 е приета.")Поръчка №1024 е приета.Да, това е цялата програма: един ред. Думите в него ще разберем в урока „Първата програма“. Важното е друго: процесорът на компютъра не разбира този текст. Нещо трябва да го преведе.
- Ти пишеш изходния код (source code) във файл
shop.py. - Пускаш го с командата
python shop.py. Програматаpythonсе казва интерпретатор. Тя първо проверява записа на целия файл и го превежда в байткод. Това става в паметта, при всяко пускане: отделна стъпка за компилиране, която да пускаш ти, няма. - Същият интерпретатор изпълнява байткода, ред след ред.
Python има за Windows, macOS и Linux. Затова на друг компютър пренасяш самия shop.py и той върви без промяна. Това се казва платформена независимост.
print("Поръчка №1024 е приета.")Стъпка по стъпка, с думи
- Пишеш изходния код: обикновен текст във файла shop.py.
- Отделен компилатор, който да пускаш, няма: Python ще чете самия файл.
- Затова на друг компютър отива самият shop.py, а не компилиран файл.
- Същият shop.py отива без промяна на Windows, macOS и Linux.
- Python на всяка система проверява файла, превежда го в байткод и го изпълнява. Изходът е еднакъв.
По-точно, за любопитните
- Проверката е за целия файл. Ако на втория ред липсва скоба, програмата не печата нищо, дори първия ред: Python спира със
SyntaxErrorи номера на реда, преди да е изпълнил каквото и да е. Друго е, ако сбъркаш име (totlвместоtotal). Тази грешка (NameError) излиза чак когато програмата стигне до своя ред, а редовете над него вече са се изпълнили. - Стандартният Python (CPython) не превежда програмата до машинен код. Байткодът се изпълнява от интерпретатора, затова при тежки сметки Python е по-бавен от Java и C#. Библиотеките за сметки (NumPy) са писани на C и вършат тежката част бързо. От Python 3.13 има и JIT компилация (превод в машинен код, докато програмата работи), но тя е опитна и по подразбиране е изключена.
- Байткодът на файла, който пускаш, остава в паметта. Python го записва на диска (папка
__pycache__, файлове.pyc) само за файловете, които програмата внася сimport, за да не ги превежда всеки път.
- Паметта. Всяка програма заема памет за данните си. В езици като C програмистът сам освобождава паметта, която вече не му трябва, и ако забрави или сбърка, програмата започва да заема все повече памет или да се срива. Python прави това вместо теб: garbage collector („събирачът на боклук“) намира данните, до които програмата вече няма как да стигне, и освобождава паметта им.
- В Python паметта на повечето данни се освобождава веднага щом нищо в програмата не сочи към тях, а garbage collector-ът хваща по-сложните случаи.
Идеята
Какво ще научиш
Курсът върви на модули. Всеки модул ползва само неща от предишните:
- Основи на езика: променливи, вход и изход, сметки, условия, цикли, списъци, текст.
- Функции: код, който пишеш веднъж и викаш много пъти.
- Класове и обекти: твоите собствени типове, например
OrderилиStudent. - Наследяване и полиморфизъм: общото на няколко типа на едно място.
- Грешки и изключения: какво прави програмата, когато нещо се обърка.
- Текст и файлове: работа с низове, шаблони за търсене (regex) и файлове.
- Колекции: списъци, стек, опашка, речници, множества.
- Модерен Python: ламбда функции, обработка на данни на стъпки и новите възможности на езика.
- Програми в истинския свят: тестове, едновременна работа, мрежа, бази данни.
Встрани от основния път има игри и проекти: цели програми, които правиш стъпка по стъпка.
Библиотеките, с които Python е най-известен (NumPy и pandas за данни, PyTorch за изкуствен интелект), не са в този курс. Той учи самия език. След него ще имаш всичко нужно, за да ги научиш сам.
Идеята
Как се учи тук
Всеки урок е поредица от карти, по една идея на карта. Обикновено започва с проблем от практиката, после идва какво става всъщност, често с анимация до кода. След това има малка задачка: предвиди изхода, попълни липсващото, намери грешката. Накрая има упражнение, което решаваш в редактора си, и кратък тест.
Напредъкът ти се пази в браузъра: урокът продължава от картата, до която си стигнал.
Картата на целия курс е на началната страница на курса.
Упражненията не ги пропускай. Да четеш код и да пишеш код са различни умения, а второто идва само с писане.
Идеята
Грешките са част от работата
Първите ти програми често няма да тръгнат. Ще забравиш кавичка, скоба или двоеточие, или ще отместиш ред грешно, и Python ще откаже да пусне файла.
Това не е оценка за теб. Съобщението за грешка е помощ: то казва на кой ред е проблемът и какъв е. Опитните програмисти също виждат такива съобщения всеки ден. Разликата е, че са се научили да ги четат спокойно. Ще започнем да ги четем още в първия урок с код.
Ако нещо не тръгва дълго време, остави го и се върни след малко. Често грешката се вижда веднага, щом погледнеш наново.
Накратко
Накратко
- Python се ползва за данни и изкуствен интелект, автоматизация, сървъри и наука.
- Изходният код (
shop.py) се пуска сpython shop.py: интерпретаторът проверява файла, превежда го в байткод и го изпълнява. Същият файл върви на всяка система. - Паметта се освобождава автоматично от garbage collector.
- Курсът върви на модули, а урокът на карти. Упражненията са в твоя редактор.
- Съобщението за грешка е помощ, не оценка.
Следва подготовката на компютъра: какво да инсталираш, за да пуснеш първата си програма.