Skip to content

Commit

Permalink
deploy: 452b004
Browse files Browse the repository at this point in the history
  • Loading branch information
Zelenyy committed Oct 13, 2023
0 parents commit 627c746
Show file tree
Hide file tree
Showing 972 changed files with 52,209 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .buildinfo
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 added .nojekyll
Empty file.
Binary file added _images/cicd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions _sources/advanced_python.md.txt
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
```
13 changes: 13 additions & 0 deletions _sources/authors.md.txt
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)
2 changes: 2 additions & 0 deletions _sources/beginner_python.md.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Начала программирования на Python

10 changes: 10 additions & 0 deletions _sources/cards/README.md.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Карточки с учебными материалами

В этой директории размещаются карточки с учебными материалами.
Для составления карточки руководствуемся следующими правилами:
* Каждая карточка представляет markdown файл, с материалом на определённую тему.
* Карточка может включать `rst` директивы.
* Карточка может иметь зависимые файлы: картинки, блокноты Jupyter Notebook, диаграммы и файлы с исходным кодом.
* Карточка должна иметь заголовок первого уровня, отображающий тему карточки.
* Карточка может иметь заголовки второго уровня, при компиляции в `reveal.js`-презентацию, они превращаются в вертикальные подслайды.
* Карточка не должна превращать в копию документации, лучше дать ссылку на документацию, а на карточке разобрать неочевидные моменты или те на которых надо заострить внимание.
46 changes: 46 additions & 0 deletions _sources/cards/installation/anaconda.md.txt
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`.


## Недостатки
15 changes: 15 additions & 0 deletions _sources/cards/installation/bundled.md.txt
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.
* Недоступно для устаревших и маргинальных ОС и платформ.
13 changes: 13 additions & 0 deletions _sources/cards/installation/cloud.md.txt
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/)

## Недостатки

* Требуют постоянного интернет-соединения.
* Данные хранятся у третьих-лиц и могут быть утеряны или заблокированы.
* Наличие сетевой задержки может влиять на пользовательский опыт.
21 changes: 21 additions & 0 deletions _sources/cards/installation/installation.md.txt
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
```



9 changes: 9 additions & 0 deletions _sources/cards/installation/official.md.txt
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 со стандартной библиотекой, без дополнительных инструментов.
* Недоступно для устаревших и маргинальных ОС и платформ.
14 changes: 14 additions & 0 deletions _sources/cards/installation/system.md.txt
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` позволяет устанавливать библиотеки для питона, эффективность установленных системных библиотек может быть выше чем установленных через другие пакетный менеджеры за счет использовани нативных расширений.
20 changes: 20 additions & 0 deletions _sources/cards/installation/wasm_python.md.txt
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 _sources/cards/lexical_and_syntax/02.ScopesAndNamespace.ipynb.txt
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
}
Loading

0 comments on commit 627c746

Please sign in to comment.