From 9fff9c509df9420d4ec8b6953e2a7627a58c17fb Mon Sep 17 00:00:00 2001 From: Vasiliy Date: Tue, 7 Sep 2021 18:39:19 +0300 Subject: [PATCH 1/3] fix some typos in lab01 --- content/lab01.rst | 91 +++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 43 deletions(-) diff --git a/content/lab01.rst b/content/lab01.rst index 952fffa..7a0b4be 100644 --- a/content/lab01.rst +++ b/content/lab01.rst @@ -26,12 +26,12 @@ **Для отступов в Python значительно удобнее использовать пробелы, а не табуляцию**. -Для ввода одной **строки** данных с клавиатуры используется команда :python:`input()`. Для вывода результата — :python:`print()`; +Для ввода одной **строки** данных с клавиатуры используется команда :python:`input()`. Для вывода результата — :python:`print()`: .. code-block:: python a = input() # Ввод строки - print(a) # Вывод переменной + print(a) # Вывод переменной Для запуска программы `application.py` на «рабочем столе» необходимо в консоли перейти в папку с программой @@ -81,13 +81,13 @@ Неизменяемые типы данных ------------------------ -* Числовые (:python:`int`, :python:`float`, :python:`complex`); -* Логический (:python:`bool`) -* Строки (:python:`str`) **нельзя менять отдельные буквы в строке — только создав новую строку**; -* Кортеж (:python:`tuple`) **не позволяет изменять набор, но может содержать изменяемые элементы**; -* Замороженное множество (:python:`frozenset`); -* Функции **имя функции также является переменной, и может быть переопределено**. -* Классы **но не экземпляры классов** +* Числовые (:python:`int`, :python:`float`, :python:`complex`). +* Логический (:python:`bool`). +* Строки (:python:`str`) **нельзя менять отдельные буквы в строке — только создав новую строку**. +* Кортеж (:python:`tuple`) **не позволяет изменять набор, но может содержать изменяемые элементы**. +* Замороженное множество (:python:`frozenset`). +* Функции. **Имя функции также является переменной, и может быть переопределено**. +* Классы. **Но не экземпляры классов**. Изменяемые типы данных ---------------------- @@ -96,10 +96,11 @@ * Множество (:python:`set`) — неповторяющийся набор *неизменяемых* элементов * Словарь (:python:`dict`) — таблица соответствия *ключ* → *значение*. *Ключ* обязательно *неизменяемый*, *значение* любое. -Для *определения* типа переменной (например `x`), использовать функцию ``type``. Для *проверти* типа — используется оператор ``is``. +Для *определения* типа переменной (например `x`) можно использовать функцию ``type``. Для *проверки* типа используется оператор ``is``. :python:`type(x) is int`. +Также для *проверки* типа может использоваться функция :python:`isinstance`. Но подробнее о которой стоит говорить в теме, посвящённой классам в Питоне. Циклы и ветвления ================= @@ -135,8 +136,8 @@ .. code-block:: python start = 1 # первый элемент прогрессии - stop = 100 # ограничение прогрессии - step = 2 # шаг прогрессии + stop = 100 # ограничение прогрессии + step = 2 # шаг прогрессии for i in range(start, stop, step): print(i) @@ -159,11 +160,12 @@ .. code-block:: python start = 1 # первый элемент прогрессии - stop = 100 # ограничение прогрессии - step = 2 # шаг прогрессии + stop = 100 # ограничение прогрессии + step = 2 # шаг прогрессии i = start + while i < stop: print(i) i += step @@ -183,7 +185,7 @@ ''' elif <условие 2>: ''' - выполняется, если <условие 2> истинно а предыдущие ложны. Может отсутствовать. + выполняется, если <условие 2> истинно, а предыдущие ложны. Может отсутствовать. ''' elif <условие 3>: ''' @@ -207,8 +209,10 @@ .. code-block:: python i = 1 + while True: # запускаем бесконечный цикл i += 1 # увеличиваем i + if i > 100: break # останавливаемся, если перешли через 100 if i % 2 == 0: @@ -272,7 +276,7 @@ +--------------------------+---------------------------------------------------------------------------------------+ -Работа с множествами +Работа со множествами -------------------- +----------------------------------------------+------------------------------------------------------------------------------------+ @@ -325,7 +329,7 @@ | :python:`A > B` | A ⊃ B | +----------------------------------------------+------------------------------------------------------------------------------------+ - Поведение `discard` и `remove` различается тогда, когда удаляемый элемент *отсутствует* в множестве: `discard` не делает ничего, а метод remove возвращает ошибку, как и `pop`. + Поведение `discard` и `remove` различается тогда, когда удаляемый элемент *отсутствует* во множестве: `discard` не делает ничего, а метод `remove` возвращает ошибку, как и `pop`. Операции со словарем -------------------- @@ -387,17 +391,21 @@ ''' Функция выводит данные и из тип. ''' - if type(x) is dict: # вывод словаря + if type(x) is dict: print('Dict') + for i in x: my_out(i) print('> ', end='') my_out(x[i]) + print('End dict') elif type(x) in (set, frozenset, list, tuple): print('Iter') + for i in x: my_out(i) + print('End iter') elif type(x) in (int, float, complex): print("digit", x) @@ -433,13 +441,11 @@ # Пример вызова функции - print(my_sum(1,2,3)) # 1 + 2 + 3= 6 - + print(my_sum(1, 2, 3)) # 1 + 2 + 3= 6 print(my_sum(1)) # 1 + 10 + 100 = 111 - print(my_sum(1, c=4)) # 1 + 10 + 4 = 15 -**ВАЖНО** Инициализация данных по умолчанию проводиться только один раз — во время создания функции. При вызове функции происходит присваивание незаданным параметрам **инициализированные** значения. Т.е. **не стоит использовать в качестве значений по умолчанию изменяемые данные**. +**ВАЖНО**: Инициализация данных по умолчанию проводиться только один раз — во время создания функции. При вызове функции происходит присваивание незаданным параметрам **инициализированные** значения. Т.е. **не стоит использовать в качестве значений по умолчанию изменяемые данные**. Функции с неизвестным количеством параметров -------------------------------------------- @@ -447,9 +453,9 @@ .. code-block:: python - def <имя функции>(*argv, **kwargs): + def <имя функции>(*args, **kwargs): ''' - argv - список неименованных данных + args - список неименованных данных kwargs - словарь именованных параметров ''' @@ -457,18 +463,18 @@ .. code-block:: python - def my_sum(*argv): + def my_sum(*args): s = 0 - for i in argv: + + for i in args: s += i + return s # Пример вызова функции - print(my_sum(1,2,3)) # 1 + 2 + 3= 6 - + print(my_sum(1, 2, 3)) # 1 + 2 + 3= 6 print(my_sum(1)) # 1 = 1 - print(my_sum(1, 4)) # 1 + 4 = 5 @@ -520,19 +526,19 @@ Основные методы --------------- -+----------------------------------------+------------------------------------------------------------------------------+ -| Метод | Описание | -+========================================+==============================================================================+ -| :python:`s.find(sub, start=0)` | Ищет `sub` в строке `s[start:]`. -1, если не найдена | -+----------------------------------------+------------------------------------------------------------------------------+ -| :python:`s.index(sub, start=0)` | Ищет `sub` в строке `s[start:]`. Ошибка, если `sub` не найдена | -+----------------------------------------+------------------------------------------------------------------------------+ -| :python:`s.replace(old, rep, cnt=-1)` | Возвращает строку `s`, с заменёнными `old` на `rep`, не более чем `cnt` раз. | -| | Если `cnt == -1`, то заменяет все вхождения | -+----------------------------------------+------------------------------------------------------------------------------+ -| :python:`s.split(sep=None, maxcnt=-1)` | Создаёт список подстрок `s`, используя `sep` в качестве разделителя. | -| | Если `sep == None`, разделяет по любым пробельным символам | -+----------------------------------------+------------------------------------------------------------------------------+ ++-----------------------------------------+-----------------------------------------------------------------------------------------+ +| Метод | Описание | ++=========================================+=========================================================================================+ +| :python:`s.find(sub, start=0)` | Ищет `sub` в строке `s[start:]`. -1, если не найдена | ++-----------------------------------------+-----------------------------------------------------------------------------------------+ +| :python:`s.index(sub, start=0)` | Ищет `sub` в строке `s[start:]`. Ошибка, если `sub` не найдена | ++-----------------------------------------+-----------------------------------------------------------------------------------------+ +| :python:`s.replace(old, rep[, max])` | Возвращает строку `s`, с заменёнными `old` на `rep`. | +| | Если третий параметр задан, то заменяются только первые `max` вхождений подстроки `old`.| ++-----------------------------------------+-----------------------------------------------------------------------------------------+ +| :python:`s.split(sep=None, maxsplit=-1)`| Создаёт список подстрок `s`, используя `sep` в качестве разделителя. | +| | Если `sep == None`, разделяет по любым пробельным символам | ++-----------------------------------------+-----------------------------------------------------------------------------------------+ Задача 1 @@ -555,4 +561,3 @@ -------- Создать список чисел меньших 2500, оканчивающихся на 1 и являющихся квадратами целых чисел. - From 7ff5b5cd576dbc1fbd8ff805832b6f907b648d5c Mon Sep 17 00:00:00 2001 From: Vasiliy Date: Tue, 7 Sep 2021 18:41:47 +0300 Subject: [PATCH 2/3] fix language --- content/lab01.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/lab01.rst b/content/lab01.rst index 7a0b4be..0f0b9da 100644 --- a/content/lab01.rst +++ b/content/lab01.rst @@ -100,7 +100,7 @@ :python:`type(x) is int`. -Также для *проверки* типа может использоваться функция :python:`isinstance`. Но подробнее о которой стоит говорить в теме, посвящённой классам в Питоне. +Также для *проверки* типа может использоваться функция :python:`isinstance`. Подробнее о которой, правда, стоит говорить в теме, посвящённой классам в Питоне. Циклы и ветвления ================= From 57223368efb72bcf8a38d3b2ebdaee425652f455 Mon Sep 17 00:00:00 2001 From: Vasiliy Date: Tue, 7 Sep 2021 18:45:29 +0300 Subject: [PATCH 3/3] fix code appearance if table with strings --- content/lab01.rst | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/lab01.rst b/content/lab01.rst index 0f0b9da..bfc2a2b 100644 --- a/content/lab01.rst +++ b/content/lab01.rst @@ -526,19 +526,19 @@ Основные методы --------------- -+-----------------------------------------+-----------------------------------------------------------------------------------------+ -| Метод | Описание | -+=========================================+=========================================================================================+ -| :python:`s.find(sub, start=0)` | Ищет `sub` в строке `s[start:]`. -1, если не найдена | -+-----------------------------------------+-----------------------------------------------------------------------------------------+ -| :python:`s.index(sub, start=0)` | Ищет `sub` в строке `s[start:]`. Ошибка, если `sub` не найдена | -+-----------------------------------------+-----------------------------------------------------------------------------------------+ -| :python:`s.replace(old, rep[, max])` | Возвращает строку `s`, с заменёнными `old` на `rep`. | -| | Если третий параметр задан, то заменяются только первые `max` вхождений подстроки `old`.| -+-----------------------------------------+-----------------------------------------------------------------------------------------+ -| :python:`s.split(sep=None, maxsplit=-1)`| Создаёт список подстрок `s`, используя `sep` в качестве разделителя. | -| | Если `sep == None`, разделяет по любым пробельным символам | -+-----------------------------------------+-----------------------------------------------------------------------------------------+ ++------------------------------------------+------------------------------------------------------------------------------------------+ +| Метод | Описание | ++==========================================+==========================================================================================+ +| :python:`s.find(sub, start=0)` | Ищет `sub` в строке `s[start:]`. -1, если не найдена. | ++------------------------------------------+------------------------------------------------------------------------------------------+ +| :python:`s.index(sub, start=0)` | Ищет `sub` в строке `s[start:]`. Ошибка, если `sub` не найдена. | ++------------------------------------------+------------------------------------------------------------------------------------------+ +| :python:`s.replace(old, rep[, max])` | Возвращает строку `s`, с заменёнными `old` на `rep`. | +| | Если третий параметр задан, то заменяются только первые `max` вхождений подстроки `old`. | ++------------------------------------------+------------------------------------------------------------------------------------------+ +| :python:`s.split(sep=None, maxsplit=-1)` | Создаёт список подстрок `s`, используя `sep` в качестве разделителя. | +| | Если `sep == None`, разделяет по любым пробельным символам. | ++------------------------------------------+------------------------------------------------------------------------------------------+ Задача 1