Добавлены примеры и задание по типам коллекций

This commit is contained in:
Sergey Lemeshevsky
2020-03-09 14:33:15 +03:00
parent 2756a9b834
commit 7dba740376
15 changed files with 2151 additions and 107 deletions

View File

@@ -10,7 +10,7 @@
"<!-- Author: --> \n",
"**С.В. Лемешевский** (email: `sergey.lemeshevsky@gmail.com`), Институт математики НАН Беларуси\n",
"\n",
"Date: **Feb 27, 2020**\n",
"Date: **Mar 4, 2020**\n",
"\n",
"<!-- Common Mako variable and functions -->\n",
"<!-- -*- coding: utf-8 -*- -->\n",
@@ -1806,7 +1806,7 @@
"преобразуется к верхнему регистру, а остальные символы к нижнему. \n",
"\n",
"\n",
"## `quadratic.py`\n",
"## Решение квадратного уравнения\n",
"<div id=\"datatype:examples:quadratic\"></div>\n",
"\n",
"Квадратные уравнения это уравнения вида $ax^2 + bx + c = 0$, где $a \\ne 0$,\n",
@@ -1845,8 +1845,27 @@
"С коэффициентами $1.5$, $-3$ и $6$ программа выведет (некоторые цифры\n",
"обрезаны):\n",
"\n",
"Теперь обратимся к программному коду, который начинается тремя инструкциями `import`:\n",
"\n",
"Теперь обратимся к [программному коду](src-datatype/quadratic.py),\n",
"который начинается тремя инструкциями `import`:"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import cmath\n",
"import math\n",
"import sys"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Нам необходимы обе математические библиотеки для работы с числами типа\n",
"`float` и `complex`, так как функции, вычисляющие квадратный \n",
"корень из вещественных и комплексных чисел, отличаются. Модуль\n",
@@ -1860,13 +1879,12 @@
},
{
"cell_type": "code",
"execution_count": 54,
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Start get_float\n",
"def get_float(msg, allow_zero):\n",
" x = None\n",
" while x is None:\n",
@@ -1895,13 +1913,12 @@
},
{
"cell_type": "code",
"execution_count": 55,
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Start 1st block\n",
"print(\"ax\\N{SUPERSCRIPT TWO} + bx + c = 0\")\n",
"a = get_float(\"enter a: \", False)\n",
"b = get_float(\"enter b: \", False)\n",
@@ -1919,13 +1936,12 @@
},
{
"cell_type": "code",
"execution_count": 56,
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Start 2d block\n",
"x1 = None\n",
"x2 = None\n",
"discriminant = (b ** 2) - (4 * a * c)\n",
@@ -1954,13 +1970,12 @@
},
{
"cell_type": "code",
"execution_count": 57,
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Start 3d block\n",
"equation = (\"{0}x\\N{SUPERSCRIPT TWO} + {1}x + {2} = 0\"\n",
" \" \\N{RIGHTWARDS ARROW} x = {3}\").format(a, b, c, x1)\n",
"if x2 is not None:\n",
@@ -1978,7 +1993,7 @@
"использовали некоторые имена Юникода для вывода пары специальных\n",
"символов.\n",
"\n",
"## `csv2html.py`\n",
"## Представление таблицы `csv` в HTML\n",
"<div id=\"datatype:examples:csv2html\"></div>\n",
"\n",
"Часто бывает необходимо представить данные в формате HTML. В этом\n",
@@ -2018,8 +2033,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Предположим, что данные находятся в файле\n",
"\"sample.csv\": \"src-datatype/sample.csv\" и выполнена комадна"
"Предположим, что данные находятся в файле [sample.csv](src-datatype/sample.csv.txt) и выполнена комадна"
]
},
{
@@ -2091,10 +2105,10 @@
"source": [
"На рис. показано, как выглядит полученная таблица в веб-броузере.\n",
"\n",
"<!-- dom:FIGURE: [fig-datatype/example_1.png, width=400 frac=1.0] Таблица, произведенная программой csv2html.py, в броузере <div id=\"datatype:examples:fig:1\"></div> -->\n",
"<!-- dom:FIGURE: [fig-datatype/example_1.png, width=400 frac=1.0] Таблица, произведенная программой [csv2html.py](src-datatype/csv2html.py), в броузере <div id=\"datatype:examples:fig:1\"></div> -->\n",
"<!-- begin figure -->\n",
"<div id=\"datatype:examples:fig:1\"></div>\n",
"![Таблица, произведенная программой csv2html.py, в броузере](fig-datatype/example_1.png)<!-- end figure -->\n",
"![Таблица, произведенная программой [csv2html.py](src-datatype/csv2html.py), в броузере](fig-datatype/example_1.png)<!-- end figure -->\n",
"\n",
"\n",
"Теперь, когда мы увидели, как используется программа и что она делает,\n",
@@ -2105,7 +2119,7 @@
},
{
"cell_type": "code",
"execution_count": 58,
"execution_count": 59,
"metadata": {
"collapsed": false
},
@@ -2128,10 +2142,10 @@
"функций в файле (то есть порядок, в котором они создаются) не \n",
"имеет значения.\n",
"\n",
"В программе `csv2html.py` первой вызываемой функцией является функция\n",
"`main()`, которая в свою очередь вызывает функции `print_start()` и\n",
"`print_line()`. Функция `print_line()` вызывает функции\n",
"`extract_fields()` и `escape_html()`.\n",
"В программе [csv2html.py](src-datatype/csv2html.py) первой\n",
"вызываемой функцией является функция `main()`, которая в свою очередь\n",
"вызывает функции `print_start()` и `print_line()`. Функция\n",
"`print_line()` вызывает функции `extract_fields()` и `escape_html()`.\n",
"\n",
"Когда интерпретатор Python читает файл, он начинает делать это с\n",
"самого начала. Поэтому сначала будет выполнен импорт (если он есть),\n",
@@ -2147,7 +2161,7 @@
},
{
"cell_type": "code",
"execution_count": 59,
"execution_count": 60,
"metadata": {
"collapsed": false
},
@@ -2190,7 +2204,7 @@
},
{
"cell_type": "code",
"execution_count": 60,
"execution_count": 61,
"metadata": {
"collapsed": false
},
@@ -2215,7 +2229,7 @@
},
{
"cell_type": "code",
"execution_count": 61,
"execution_count": 62,
"metadata": {
"collapsed": false
},
@@ -2273,7 +2287,7 @@
},
{
"cell_type": "code",
"execution_count": 62,
"execution_count": 63,
"metadata": {
"collapsed": false
},
@@ -2292,7 +2306,7 @@
},
{
"cell_type": "code",
"execution_count": 63,
"execution_count": 64,
"metadata": {
"collapsed": false
},
@@ -2337,7 +2351,7 @@
},
{
"cell_type": "code",
"execution_count": 64,
"execution_count": 65,
"metadata": {
"collapsed": false
},
@@ -2382,7 +2396,7 @@
},
{
"cell_type": "code",
"execution_count": 65,
"execution_count": 66,
"metadata": {
"collapsed": false
},