Към съдържанието
wannacode

Езикът, който учиш

Проблем

Защо точно Python

Езиците за програмиране са стотици. Всеки става за нещо, но не за всичко еднакво добре. Преди да отделиш месеци на един от тях, честно е да знаеш къде ще го ползваш.

Python (чете се „пайтън“) е език, на който програмите се пишат кратко и се четат почти като текст:

  • данни и изкуствен интелект: анализ на таблици, графики, обучение на модели. Повечето библиотеки за машинно обучение се ползват от Python;
  • автоматизация: малки програми, които преименуват хиляди файлове, попълват таблици или проверяват сайт всяка сутрин;
  • уеб сайтове и услуги: частта на сървъра, с библиотеки като Django и FastAPI;
  • наука и обучение: в много университети първият език е Python, а учените го ползват за сметки и опити.

Python е от 1991 г. Една версия излиза всяка година, а готовите библиотеки се броят в стотици хиляди.

Идеята

От текст до програма

Програмата, която пишеш, е обикновен текст във файл. Ето една цяла програма:

shop.py
print("Поръчка №1024 е приета.")
Изход
Поръчка №1024 е приета.

Да, това е цялата програма: един ред. Думите в него ще разберем в урока „Първата програма“. Важното е друго: процесорът на компютъра не разбира този текст. Нещо трябва да го преведе.

  1. Ти пишеш изходния код (source code) във файл shop.py.
  2. Пускаш го с командата python shop.py. Програмата python се казва интерпретатор. Тя първо проверява записа на целия файл и го превежда в байткод. Това става в паметта, при всяко пускане: отделна стъпка за компилиране, която да пускаш ти, няма.
  3. Същият интерпретатор изпълнява байткода, ред след ред.

Python има за Windows, macOS и Linux. Затова на друг компютър пренасяш самия shop.py и той върви без промяна. Това се казва платформена независимост.

print("Поръчка №1024 е приета.")
Стъпка по стъпка, с думи
  1. Пишеш изходния код: обикновен текст във файла shop.py.
  2. Отделен компилатор, който да пускаш, няма: Python ще чете самия файл.
  3. Затова на друг компютър отива самият shop.py, а не компилиран файл.
  4. Същият shop.py отива без промяна на Windows, macOS и Linux.
  5. 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-ът хваща по-сложните случаи.

Идеята

Какво ще научиш

Курсът върви на модули. Всеки модул ползва само неща от предишните:

  1. Основи на езика: променливи, вход и изход, сметки, условия, цикли, списъци, текст.
  2. Функции: код, който пишеш веднъж и викаш много пъти.
  3. Класове и обекти: твоите собствени типове, например Order или Student.
  4. Наследяване и полиморфизъм: общото на няколко типа на едно място.
  5. Грешки и изключения: какво прави програмата, когато нещо се обърка.
  6. Текст и файлове: работа с низове, шаблони за търсене (regex) и файлове.
  7. Колекции: списъци, стек, опашка, речници, множества.
  8. Модерен Python: ламбда функции, обработка на данни на стъпки и новите възможности на езика.
  9. Програми в истинския свят: тестове, едновременна работа, мрежа, бази данни.

Встрани от основния път има игри и проекти: цели програми, които правиш стъпка по стъпка.

Библиотеките, с които Python е най-известен (NumPy и pandas за данни, PyTorch за изкуствен интелект), не са в този курс. Той учи самия език. След него ще имаш всичко нужно, за да ги научиш сам.

Идеята

Как се учи тук

Всеки урок е поредица от карти, по една идея на карта. Обикновено започва с проблем от практиката, после идва какво става всъщност, често с анимация до кода. След това има малка задачка: предвиди изхода, попълни липсващото, намери грешката. Накрая има упражнение, което решаваш в редактора си, и кратък тест.

Напредъкът ти се пази в браузъра: урокът продължава от картата, до която си стигнал.

Картата на целия курс е на началната страница на курса.

Упражненията не ги пропускай. Да четеш код и да пишеш код са различни умения, а второто идва само с писане.

Идеята

Грешките са част от работата

Първите ти програми често няма да тръгнат. Ще забравиш кавичка, скоба или двоеточие, или ще отместиш ред грешно, и Python ще откаже да пусне файла.

Това не е оценка за теб. Съобщението за грешка е помощ: то казва на кой ред е проблемът и какъв е. Опитните програмисти също виждат такива съобщения всеки ден. Разликата е, че са се научили да ги четат спокойно. Ще започнем да ги четем още в първия урок с код.

Ако нещо не тръгва дълго време, остави го и се върни след малко. Често грешката се вижда веднага, щом погледнеш наново.

Накратко

Накратко

  • Python се ползва за данни и изкуствен интелект, автоматизация, сървъри и наука.
  • Изходният код (shop.py) се пуска с python shop.py: интерпретаторът проверява файла, превежда го в байткод и го изпълнява. Същият файл върви на всяка система.
  • Паметта се освобождава автоматично от garbage collector.
  • Курсът върви на модули, а урокът на карти. Упражненията са в твоя редактор.
  • Съобщението за грешка е помощ, не оценка.

Следва подготовката на компютъра: какво да инсталираш, за да пуснеш първата си програма.

Създаден от Иво Гергов като част от кампанията на Evo Tech за достъпно обучение по програмиране ·