diff --git a/01 - Intro to Python/install-n-setup.md b/01 - Intro to Python/install-n-setup.md index 2d53c0c..076af6c 100644 --- a/01 - Intro to Python/install-n-setup.md +++ b/01 - Intro to Python/install-n-setup.md @@ -4,14 +4,14 @@ ![Python and a python](assets/pythons.png) -Python е [high-level](https://www.geeksforgeeks.org/difference-between-high-level-and-low-level-languages/) език за програмиране, който е [интерпретируем](https://www.geeksforgeeks.org/difference-between-compiler-and-interpreter/), [динамично-типизиран](https://www.educative.io/answers/what-is-dynamic-typing#) и мултипарадигмен. Синтаксисът му е семпъл и лесен за научаване. Комибнацията от всичко изброено прави Python един мощен език за програмиране. +Python е [high-level](https://www.geeksforgeeks.org/difference-between-high-level-and-low-level-languages/) език за програмиране, който е [интерпретируем](https://www.geeksforgeeks.org/difference-between-compiler-and-interpreter/), [динамично-типизиран](https://www.educative.io/answers/what-is-dynamic-typing#) и мултипарадигмен. Синтаксисът му е семпъл и лесен за научаване. Има интеграция със С код и библиотеки. Комибнацията от всичко изброено прави Python един мощен език за програмиране. ### За какво се ползва? -* **Скриптове** (автоматизация, DevOps, системна администрация, клауд услуги, конзолни инструменти, т.н.) -* **Machine Learning и Data Science** (посредством библиотеки като TensorFlow, PyTorch, Scikit-learn, Pandas, NumPy, SciPy, Matplotlib и т.н.) +* **Скриптове** (автоматизация, DevOps, системна администрация, data flows & pipelines, инфраструктурни процеси, конзолни инструменти, тестване, т.н.) +* **Machine Learning / Data Science / AI** (посредством библиотеки като TensorFlow, PyTorch, Scikit-learn, Pandas, NumPy, SciPy, Matplotlib и т.н.) * **Уеб сървъри** (бекенд, посредством библиотеки като Django, Flask, FastAPI, т.н.) -* **Desktop приложения** (по-рядко) +* **Desktop приложения** (рядко) ### Версии @@ -23,14 +23,15 @@ Python е [high-level](https://www.geeksforgeeks.org/difference-between-high-lev * **3.9** (окт. 2020) * **3.10** (окт. 2021) * **3.11** (окт. 2022) -* 3.12 е [планирана](https://peps.python.org/pep-0693/) за окт. 2023г. +* **3.12** (окт. 2023) +* 3.13 планирана за окт. 2024 * 4.0 [може и да няма](https://builtin.com/software-engineering-perspectives/python-4) ### Какви са минусите на Python? -* **Бавен** - в пъти даже, в сравнение с езици като C/C++ и Java (макар и в 3.11 да са направени подобрения на скоростта) +* **Бавен** - в пъти даже, в сравнение с езици като C/C++ и Java (макар и в 3.11 да са направени подобрения на скоростта, няма как да се сравнява с по-low-level езици) * **Multi-threading-ът е неефективен** - това ще го разберем защо е така [по-късно в курса](../09%20-%20Multithreading/). -* **Не е особено подходящ за enterprise системи** - заради типизация, скорост и други причини +* **Не е особено подходящ за стабилни и скалируеми backend-и** - заради типизация, скорост, конкурентност и други причини * **(Почти) не може да се пишат мобилни приложения на него** ### Какви са плюсовете на Python? diff --git a/01 - Intro to Python/notebooks.md b/01 - Intro to Python/notebooks.md index 2900a92..218aa1a 100644 --- a/01 - Intro to Python/notebooks.md +++ b/01 - Intro to Python/notebooks.md @@ -4,13 +4,13 @@ Клетките с код са изпълними и техният резултат от изпълнението е изписан непосредствено под тях. -В случай, че просто искате да четете лекциите, без да редактирате/изпълнявате съдържанието, можете да ги отваряте в [сайта на курса](https://fmipython.github.io/PythonCourse2023/README.html) (който е под формата на [Jupyterbook](https://jupyterbook.org/en/stable/intro.html)) или директно в GitHub да ги разглеждате. +В случай, че просто искате да четете лекциите, без да редактирате/изпълнявате съдържанието, можете да ги отваряте в [сайта на курса](https://fmipython.github.io/PythonCourse2024/README.html) (който е под формата на [Jupyterbook](https://jupyterbook.org/en/stable/intro.html)) или директно в GitHub да ги разглеждате. Ако желаете да си експериментирате с примерите, които се дават в лекциите, и да им подкарвате кода, то има няколко начина за това: -## Вариант 1: Онлайн, чрез Google Collab бутона в Jupyterbook-a +## Вариант 1 (най-лесен): Онлайн, чрез Google Collab бутона в Jupyterbook-a -1. Отворете съответната лекция в [сайта на курса](https://fmipython.github.io/PythonCourse2023/README.html) +1. Отворете съответната лекция в [сайта на курса](https://fmipython.github.io/PythonCourse2024/README.html) 2. Най-горе има една иконка на ракетка, като при натискането ѝ има опцията да се отвори лекцията в Google Collab: ![Collab light button](assets/collab-light.png) @@ -23,12 +23,12 @@ 1. Изтеглете от гитхъб репото на курса ```bash - git clone https://github.com/fmipython/PythonCourse2023.git + git clone https://github.com/fmipython/PythonCourse2024.git ``` 2. Навигирайте до папката на курса ```bash - cd PythonCourse2023 + cd PythonCourse2024 ``` 3. Изтеглете Jupyter и JupyterLab @@ -44,7 +44,7 @@ ![Jupyter](assets/jupyter.png) -## Вариант 3: Директно във Visual Studio Code +## Вариант 3 (arguably най-удобен): Директно във Visual Studio Code 1. Изтеглете от GitHub репото на курса (ако го нямате вече) @@ -52,12 +52,12 @@ * **през терминала**: 1. Командата, която да изпълните (в директорията, в която искате да се създаде и изтегли папката на курса) е: ```bash - git clone https://github.com/fmipython/PythonCourse2023.git + git clone https://github.com/fmipython/PythonCourse2024.git ``` - 2. След което отворете във VSCode папката на курса. Това може да стане или чрез графичния интерфейс, или (ако сте добавили VSCode във PATH) чрез командата `code PythonCourse2023`. + 2. След което отворете във VSCode папката на курса. Това може да стане или чрез графичния интерфейс, или (ако сте добавили VSCode във PATH) чрез командата `code PythonCourse2024`. * **през VSCode в браузъра**: - 1. 🪄 В [Github страницата на курса](https://github.com/fmipython/PythonCourse2023) (и по принцип във всяко Github repository) можете да натиснете `.` (точка) на клавиатурата, за да отворите Web VSCode ✨ + 1. 🪄 В [Github страницата на курса](https://github.com/fmipython/PythonCourse2024) (и по принцип във всяко Github repository) можете да натиснете `.` (точка) на клавиатурата, за да отворите Web VSCode ✨ 2. 😕 В него ще можете да гледате и редактирате съдържанията на файловете, но няма да можете да изпълнявате клетките (понеже това изисква IPython kernel, който трябва да бъде пуснат, което може да стане или в Github Codespace, или локално на вашата машина) (а Codespace-ът е общ за всички и струва пари, so...). 3. 💻 Затова оттук ще трябва кликнете "Github" бутона най-долу най-вляво и след това да изберете опцията Continue working in a new local clone: @@ -81,6 +81,8 @@ ![VSCode Jupyter Notebooks](assets/vscode-jupyter.png) +*(скрийншотът е от предишна година but you get the point, не ми се качва нов)* + Бутонът горе вдясно първият път ще е с текст "Select Kernel". От него избирате конкретният Python интерпретатор, с който да се изпълняват клетките. Чрез Run бутоните (или Ctrl+Enter) можете да изпълнявате клетките.