-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 627c746
Showing
972 changed files
with
52,209 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 7df73bdfc69adedd3d09930cb8f14915 | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Empty file.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Продвинутое программирование на Python | ||
|
||
```{eval-rst} | ||
.. toctree:: | ||
:maxdepth: 1 | ||
:caption: Оглавление: | ||
|
||
pages/advanced_python/course_program.md | ||
pages/advanced_python/lesson_plan.md | ||
pages/advanced_python/2023/hw/toctree.md | ||
pages/advanced_python/2023/lecture.md | ||
cards/toctree.md | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Авторы и контакты | ||
|
||
На методическим пособием работали: | ||
|
||
* Михаил Зелёный [[email protected]](mailto:[email protected]) | ||
* Татьяна Абрамова | ||
* Анна Зелёная | ||
* Александр Нозик | ||
|
||
## Контакты | ||
|
||
* [Telegramm](https://t.me/mipt_npm) | ||
* [VK](https://vk.com/club139677307) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Начала программирования на Python | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Карточки с учебными материалами | ||
|
||
В этой директории размещаются карточки с учебными материалами. | ||
Для составления карточки руководствуемся следующими правилами: | ||
* Каждая карточка представляет markdown файл, с материалом на определённую тему. | ||
* Карточка может включать `rst` директивы. | ||
* Карточка может иметь зависимые файлы: картинки, блокноты Jupyter Notebook, диаграммы и файлы с исходным кодом. | ||
* Карточка должна иметь заголовок первого уровня, отображающий тему карточки. | ||
* Карточка может иметь заголовки второго уровня, при компиляции в `reveal.js`-презентацию, они превращаются в вертикальные подслайды. | ||
* Карточка не должна превращать в копию документации, лучше дать ссылку на документацию, а на карточке разобрать неочевидные моменты или те на которых надо заострить внимание. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Дистрибутив Anaconda | ||
|
||
[Дистрибутив](https://ru.wikipedia.org/wiki/Дистрибутив) Anaconda содержит в себе все необходимое для работу с Python: | ||
|
||
* Около тысячи пакетов для языков программирования Python и R; | ||
* Может быть установлен на любой популярной операционной системе (Windows, Linux и MacOS); | ||
* Использует пакетный менеджер `conda` и предоставляет графический интерфейс для него; | ||
* Рабочая тетрадь [Jupyter Notebook](https://jupyter.org); | ||
* Рабочее окружение `Anaconda Navigator`. | ||
|
||
## Установка дистрибутива Anaconda | ||
|
||
Для загрузки перейдите на сайт [anaconda.com](https://www.anaconda.com/), нажмите кнопку `Downloads` в правом верхнем углу страницы, выберите свою операционную систему (Windows, MacOS или Linux) | ||
|
||
### Windows | ||
|
||
Нажмите кнопку `64-Bit Graphical Installer` или `32-Bit Graphical Installer` под надписью `Python 3.7` в зависимости от разрядности системы (разрядность можно узнать [вот так](https://support.microsoft.com/ru-ru/help/827218/how-to-determine-whether-a-computer-is-running-a-32-bit-version-or-64) или [так](https://support.microsoft.com/ru-ru/help/15056/windows-32-64-bit-faq)). Запустите загруженный файл и следуйте инструкции. После установки программы из Anaconda будут доступны в меню `Пуск`, для управления Anaconda вы можете использовать программу `Anaconda Navigator`. | ||
|
||
### MacOs | ||
|
||
Нажмите кнопку `64-Bit Graphical Installer` под надписью `Python 3.7`, запустите скачанный файл и следуйте инструкции. | ||
|
||
### Linux | ||
|
||
Нажмите кнопку `64-Bit (x86) Installer` под надписью `Python 3.7`. Откройте терминал и перейдите в папку где лежит скачанный файл: | ||
|
||
```bash | ||
cd путь/до/директории/c/файлом | ||
``` | ||
|
||
После чего разрешите исполнение скачанного файла (имя файла может отличаться): | ||
|
||
```bash | ||
chmod +x Anaconda3-5.1.0-Linux-x86_64.sh | ||
``` | ||
|
||
и запустите установку: | ||
|
||
```bash | ||
./Anaconda3-5.1.0-Linux-x86_64.sh | ||
``` | ||
|
||
следуйте инструкции, причем я рекомендую разрешить `Anaconda` сделать запись в файл `.bashrc`. | ||
|
||
|
||
## Недостатки |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Использование Python входящего в комплект со средой разработки | ||
|
||
Редакторы кода и IDE предназначенные для работы с Python, могу как использовать уже установленный в системе Python, так и использовать идущий в комплекте, или предлагать инструменты для установки Python. | ||
|
||
Примеры IDE и редакторов кода со встроенным Python: | ||
|
||
* [PyCharm Comminuty Edition](https://www.jetbrains.com/ru-ru/pycharm/) --- имеет две версии, версия `Comminuty Edition` является бесплатной IDE c открытым исходным кодом. | ||
* [Spider](https://www.spyder-ide.org/) --- бесплатная IDE c открытым исходным кодом, кроме Python предоставляет набор библиотек и инструментов ориентированных на научные исследования. | ||
* Предложите свой вариант. | ||
|
||
## Недостатки | ||
|
||
* Не всегда есть возможность повлиять на состав сборки. | ||
* Может иметь устаревший Python в составе IDE. | ||
* Недоступно для устаревших и маргинальных ОС и платформ. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Использование удалённых и облачных сред | ||
|
||
Архитектура Jupyter предполагает что выполнение кода производится на удаленной платформе, также сами файлы блокнотов могут хранится в облачном хранилище. | ||
Сервисы которые предоставляют возможность работать с блокнотами в онлайн-режиме: | ||
|
||
* [Google Colab](https://colab.research.google.com/notebooks/welcome.ipynb#recent=true) | ||
* [Datalore](https://datalore.jetbrains.com/) | ||
|
||
## Недостатки | ||
|
||
* Требуют постоянного интернет-соединения. | ||
* Данные хранятся у третьих-лиц и могут быть утеряны или заблокированы. | ||
* Наличие сетевой задержки может влиять на пользовательский опыт. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Установка Python и сопутствующего ПО | ||
|
||
|
||
![png](https://imgs.xkcd.com/comics/python_environment.png) | ||
|
||
Для того, чтобы начать работать с Python, нужно установить его, а также некоторые полезные инструменты. Существует несколько способов установить Python и работать с ним, мы перечислим основные, а так же их преимущества и недостатки (а также как всё-таки можно использовать Python без установки): | ||
|
||
|
||
```{toctree} | ||
:maxdepth: 1 | ||
|
||
./official.md | ||
./anaconda.md | ||
./system.md | ||
./bundled.md | ||
./cloud.md | ||
./wasm_python.md | ||
``` | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Установка с официального сайта | ||
|
||
Конечно же самый идеологически правильный способ это получить установочные файлы от производителя: | ||
[https://www.python.org/downloads/](https://www.python.org/downloads/) | ||
|
||
## Недостатки | ||
|
||
* В комплекте идёт только чистый Python со стандартной библиотекой, без дополнительных инструментов. | ||
* Недоступно для устаревших и маргинальных ОС и платформ. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Использование Python предустановленного в системе | ||
|
||
Некоторые ОС (например, популярные дистрибутивы Linux), уже имеют предустановленный в системе Python. | ||
|
||
## Недостатки | ||
|
||
* Системная версия Python может быть устаревшей. | ||
* Установка библиотек для системного Python может требовать дополнительных административных привилегий, не доступных пользователю. | ||
|
||
## Особенности использования Python в Ubuntu | ||
|
||
1. Под именем `python` может подразумеваться Python 2, или же такое имя вообще не будет доступно в командной строке, в таком случае используйте команду `python3` | ||
2. `apt` позволяет установить несколько версий Python, установленный Python будет доступен под именем `python3.x` | ||
3. `apt` позволяет устанавливать библиотеки для питона, эффективность установленных системных библиотек может быть выше чем установленных через другие пакетный менеджеры за счет использовани нативных расширений. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Запуск Python в браузере без установки и без запуска кода на удалённом сервере | ||
|
||
* Ссылки: [Демонстарция](https://jupyter.org/try-jupyter/lab/index.html) | [Докуменатция](https://jupyterlite.readthedocs.io/en/latest/) | ||
* Запускает Jupyter в браузере без установки Python | ||
* Не отсылает код на сервер, а исполняет его локально в браузере. | ||
* Можно сохранять результаты работы и возвращаться к ним позже, они хранятся в кэше браузера. | ||
* Результаты работы можно сохранить на диск и потом загружать их обратно в Jupyter. | ||
|
||
## Как это работает | ||
|
||
Если кратко: интерпретаторы Python компилируется в WASM и могут быть запущены в JS движке браузера. | ||
|
||
## Недостатки | ||
|
||
* Не совсем нативный Python,а его JS версия, могут быть проблемы с нативными библиотеками. | ||
* Легко потерять данные при очистке браузера. | ||
|
||
```{todo} | ||
Наличие интернет-соединения | ||
``` |
136 changes: 136 additions & 0 deletions
136
_sources/cards/lexical_and_syntax/02.ScopesAndNamespace.ipynb.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "c21b2cc9-1e15-4793-ab8a-38e7a17606fa", | ||
"metadata": { | ||
"pycharm": { | ||
"name": "#%% md\n" | ||
} | ||
}, | ||
"source": [ | ||
"# Пространтсва имен и области видимости" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "ccae5602-8b8b-4261-b035-12633989e0b1", | ||
"metadata": { | ||
"pycharm": { | ||
"name": "#%% md\n" | ||
} | ||
}, | ||
"source": [ | ||
"## Возможности Python которые не надо использовать\n", | ||
"\n", | ||
"* `global spam` --- указывает что переменая `spam` создается в глобальной области видимости\n", | ||
"* `nonlocal spam` --- указывает что перменная `spam` берется в замыкающей области видимости" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"id": "81b78e1b-8684-409a-8556-3defa0aa5a98", | ||
"metadata": { | ||
"pycharm": { | ||
"name": "#%%\n" | ||
} | ||
}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"After local assignment: test spam\n", | ||
"After nonlocal assignment: nonlocal spam\n", | ||
"After global assignment: nonlocal spam\n", | ||
"In global scope: global spam\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"\n", | ||
"def scope_test():\n", | ||
" def do_local():\n", | ||
" spam = \"local spam\"\n", | ||
"\n", | ||
" def do_nonlocal():\n", | ||
" nonlocal spam\n", | ||
" spam = \"nonlocal spam\"\n", | ||
"\n", | ||
" def do_global():\n", | ||
" global spam\n", | ||
" spam = \"global spam\"\n", | ||
"\n", | ||
" spam = \"test spam\"\n", | ||
" do_local()\n", | ||
" print(\"After local assignment:\", spam)\n", | ||
" do_nonlocal()\n", | ||
" print(\"After nonlocal assignment:\", spam)\n", | ||
" do_global()\n", | ||
" print(\"After global assignment:\", spam)\n", | ||
"\n", | ||
"scope_test()\n", | ||
"print(\"In global scope:\", spam)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"id": "80e9c3d0-a558-4c15-8813-4b0ab6b739fb", | ||
"metadata": { | ||
"pycharm": { | ||
"name": "#%%\n" | ||
} | ||
}, | ||
"outputs": [ | ||
{ | ||
"ename": "SyntaxError", | ||
"evalue": "no binding for nonlocal 'spam' found (909135207.py, line 2)", | ||
"output_type": "error", | ||
"traceback": [ | ||
"\u001b[0;36m File \u001b[0;32m\"/tmp/ipykernel_26751/909135207.py\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m nonlocal spam\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m no binding for nonlocal 'spam' found\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"def do_nonlocal():\n", | ||
" nonlocal spam\n", | ||
" spam = \"nonlocal spam\"\n", | ||
"\n", | ||
"spam = \"test spam\"\n", | ||
"do_nonlocal()\n", | ||
"spam" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"id": "a4e5a88c", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3 (ipykernel)", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.10.12" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
Oops, something went wrong.