mirror of
https://github.com/yakimka/python_interview_questions.git
synced 2025-12-18 20:04:35 +03:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4e0aed6ee | ||
|
|
e364d2cc98 | ||
|
|
7bd2b608a3 | ||
|
|
ae4c5061aa | ||
|
|
a19d2ebf06 | ||
|
|
33d7ec3d0c |
4
.github/workflows/ci-workflow.yml
vendored
4
.github/workflows/ci-workflow.yml
vendored
@@ -6,7 +6,7 @@ jobs:
|
|||||||
check-toc:
|
check-toc:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- name: Run
|
- name: Run
|
||||||
run: make toc-check
|
run: make toc-check
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
- name: Get TAG
|
- name: Get TAG
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
|
run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
|
||||||
|
|||||||
@@ -128,7 +128,7 @@
|
|||||||
+ [В каких случаях можно обработать SyntaxError](questions.md/#В-каких-случаях-можно-обработать-SyntaxError)
|
+ [В каких случаях можно обработать SyntaxError](questions.md/#В-каких-случаях-можно-обработать-SyntaxError)
|
||||||
+ [Можно ли создавать собственные исключения](questions.md/#Можно-ли-создавать-собственные-исключения)
|
+ [Можно ли создавать собственные исключения](questions.md/#Можно-ли-создавать-собственные-исключения)
|
||||||
+ [Для чего нужны предупреждения (warnings) и как создать собственное](questions.md/#Для-чего-нужны-предупреждения-warnings-и-как-создать-собственное)
|
+ [Для чего нужны предупреждения (warnings) и как создать собственное](questions.md/#Для-чего-нужны-предупреждения-warnings-и-как-создать-собственное)
|
||||||
+ [Для чего нужен модуль warning](questions.md/#Для-чего-нужен-модуль-warning)
|
+ [Для чего нужен модуль warnings](questions.md/#Для-чего-нужен-модуль-warnings)
|
||||||
* [Декораторы](questions.md/#Декораторы)
|
* [Декораторы](questions.md/#Декораторы)
|
||||||
+ [Что такое декораторы. Зачем нужны](questions.md/#Что-такое-декораторы-Зачем-нужны)
|
+ [Что такое декораторы. Зачем нужны](questions.md/#Что-такое-декораторы-Зачем-нужны)
|
||||||
+ [Что может быть декоратором. К чему может быть применен декоратор](questions.md/#Что-может-быть-декоратором-К-чему-может-быть-применен-декоратор)
|
+ [Что может быть декоратором. К чему может быть применен декоратор](questions.md/#Что-может-быть-декоратором-К-чему-может-быть-применен-декоратор)
|
||||||
|
|||||||
45
questions.md
45
questions.md
@@ -72,7 +72,43 @@
|
|||||||
|
|
||||||
На уровне языка отличаются тем, что в кортеж нельзя добавить или убрать элемент. На уровне интерпретатора различий нет. Обе коллекции представлены массивом указателей на структуру `PyObject`.
|
На уровне языка отличаются тем, что в кортеж нельзя добавить или убрать элемент. На уровне интерпретатора различий нет. Обе коллекции представлены массивом указателей на структуру `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, который наследуется от Exception.
|
||||||
Базовым классом-наследником Warning для пользовательских предупреждений является UserWarning.
|
Базовым классом-наследником Warning для пользовательских предупреждений является UserWarning.
|
||||||
|
|
||||||
### Для чего нужен модуль warning
|
### Для чего нужен модуль warnings
|
||||||
|
|
||||||
В модуле warning собраны функции для работы с предупреждениями.
|
В модуле warnings собраны функции для работы с предупреждениями.
|
||||||
Основной является функция warn, которая принимает один обязательный параметр message, который может быть либо строкой-сообщением, либо экземпляром класса или подкласса Warning (в таком случае параметр category устанавливается автоматически) и два опциональных параметра: category (по умолчанию – UserWarning) – класс предупреждения и stacklevel (по умолчанию – 1) – уровень вложенности функций, начиная с которого необходимо выводить содержимое стека вызовов (полезно, например, для функций-обёрток для вывода предупреждений, где следует задать stacklevel=2, чтобы предупреждение относилось к месту вызова данной функции, а не самой функции).
|
Основной является функция warn, которая принимает один обязательный параметр message, который может быть либо строкой-сообщением, либо экземпляром класса или подкласса Warning (в таком случае параметр category устанавливается автоматически) и два опциональных параметра: category (по умолчанию – UserWarning) – класс предупреждения и stacklevel (по умолчанию – 1) – уровень вложенности функций, начиная с которого необходимо выводить содержимое стека вызовов (полезно, например, для функций-обёрток для вывода предупреждений, где следует задать stacklevel=2, чтобы предупреждение относилось к месту вызова данной функции, а не самой функции).
|
||||||
|
|
||||||
## Декораторы
|
## Декораторы
|
||||||
@@ -1642,6 +1678,7 @@ class MyClass(BaseClass, metaclass=Singleton):
|
|||||||
## Что такое garbage collector. В чём его плюсы и минусы
|
## Что такое garbage collector. В чём его плюсы и минусы
|
||||||
|
|
||||||
- [Всё, что нужно знать о сборщике мусора в Python](https://habr.com/ru/post/417215/)
|
- [Всё, что нужно знать о сборщике мусора в 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 (generational garbage collector) - это сборщик мусора, создавался он в первую очередь для обнаружения и удаления циклических ссылок.
|
||||||
`gc` является встроенным в python модулем и при необходимости его можно выключить и запускать вручную (или не запускать). Чтобы понимать для чего был создан GC нужно понимать как в Python работает менеджер памяти и как эта память высвобождается.
|
`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)
|
||||||
|
|
||||||
## Дерево
|
## Дерево
|
||||||
|
|
||||||
|
|||||||
6
renovate.json
Normal file
6
renovate.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"config:recommended"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user