diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index fd693ee..b43a5fa 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -6,7 +6,7 @@ jobs: check-toc: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Run run: make toc-check @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Get TAG if: startsWith(github.ref, 'refs/tags/') run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV diff --git a/README.md b/README.md index 267aed7..64d45b9 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ + [В каких случаях можно обработать SyntaxError](questions.md/#В-каких-случаях-можно-обработать-SyntaxError) + [Можно ли создавать собственные исключения](questions.md/#Можно-ли-создавать-собственные-исключения) + [Для чего нужны предупреждения (warnings) и как создать собственное](questions.md/#Для-чего-нужны-предупреждения-warnings-и-как-создать-собственное) - + [Для чего нужен модуль warning](questions.md/#Для-чего-нужен-модуль-warning) + + [Для чего нужен модуль warnings](questions.md/#Для-чего-нужен-модуль-warnings) * [Декораторы](questions.md/#Декораторы) + [Что такое декораторы. Зачем нужны](questions.md/#Что-такое-декораторы-Зачем-нужны) + [Что может быть декоратором. К чему может быть применен декоратор](questions.md/#Что-может-быть-декоратором-К-чему-может-быть-применен-декоратор) diff --git a/questions.md b/questions.md index f9d99fc..7eddbfc 100644 --- a/questions.md +++ b/questions.md @@ -72,7 +72,43 @@ На уровне языка отличаются тем, что в кортеж нельзя добавить или убрать элемент. На уровне интерпретатора различий нет. Обе коллекции представлены массивом указателей на структуру `PyObject`. -Для списка определены функции, которые добавляют в такой массив новый элемент, удаляют имеющийся, соединяют два массива в один. Они вызываются методами списка `.append()`, `.pop()`, `.sort()` и т.д. +Существуют специальные функции для работы со списками. Они вызываются методами списка. Ниже приведены наиболее часто используемые. + +```python +# Создаем исходный список +lst = [1, 2, 3] + +# append(x): добавляет элемент в конец списка +lst.append(4) +# Теперь lst = [1, 2, 3, 4] + +# extend(iterable): расширяет список, добавляя элементы из итерируемого объекта +lst.extend([5, 6]) +# Теперь lst = [1, 2, 3, 4, 5, 6] + +# insert(i, x): вставляет элемент x на позицию i +lst.insert(0, 'start') +# Теперь lst = ['start', 1, 2, 3, 4, 5, 6] + +# remove(x): удаляет первое вхождение элемента x +lst.remove(3) +# Теперь lst = ['start', 1, 2, 4, 5, 6] + +# pop([i]): удаляет и возвращает элемент на позиции i (по умолчанию последний) +last = lst.pop() +# last = 6, а lst = ['start', 1, 2, 4, 5] + +# sort(): сортирует список на месте +lst = [3, 1, 4, 1, 5, 9, 2] +lst.sort() +# Теперь lst = [1, 1, 2, 3, 4, 5, 9] + +# reverse(): разворачивает список на месте +lst.reverse() +# Теперь lst = [9, 5, 4, 3, 2, 1, 1] +``` + + ### Что такое диапазон @@ -929,9 +965,9 @@ except ZeroDivisionError: Базовым классом для предупреждений является Warning, который наследуется от Exception. Базовым классом-наследником Warning для пользовательских предупреждений является UserWarning. -### Для чего нужен модуль warning +### Для чего нужен модуль warnings -В модуле warning собраны функции для работы с предупреждениями. +В модуле warnings собраны функции для работы с предупреждениями. Основной является функция warn, которая принимает один обязательный параметр message, который может быть либо строкой-сообщением, либо экземпляром класса или подкласса Warning (в таком случае параметр category устанавливается автоматически) и два опциональных параметра: category (по умолчанию – UserWarning) – класс предупреждения и stacklevel (по умолчанию – 1) – уровень вложенности функций, начиная с которого необходимо выводить содержимое стека вызовов (полезно, например, для функций-обёрток для вывода предупреждений, где следует задать stacklevel=2, чтобы предупреждение относилось к месту вызова данной функции, а не самой функции). ## Декораторы @@ -1642,6 +1678,7 @@ class MyClass(BaseClass, metaclass=Singleton): ## Что такое garbage collector. В чём его плюсы и минусы - [Всё, что нужно знать о сборщике мусора в Python](https://habr.com/ru/post/417215/) +- [CPython Garbage Collection: The Internal Mechanics and Algorithms](https://blog.codingconfessions.com/p/cpython-garbage-collection-internals) GC (generational garbage collector) - это сборщик мусора, создавался он в первую очередь для обнаружения и удаления циклических ссылок. `gc` является встроенным в python модулем и при необходимости его можно выключить и запускать вручную (или не запускать). Чтобы понимать для чего был создан GC нужно понимать как в Python работает менеджер памяти и как эта память высвобождается. @@ -4913,7 +4950,7 @@ print(quicksort([10, 5, 2, 3])) ## Очередь и стек -Очередь FIFO (first in first out), стрек LIFO (last in first out) +Очередь FIFO (first in first out), стек LIFO (last in first out) ## Дерево diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..5db72dd --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +}