> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-python/chto-takoe-rer-8.md).

# Что такое РЕР 8?

### **1. Что такое PEP 8**

* **PEP** — *Python Enhancement Proposal* (Предложение по улучшению Python).
* **PEP 8** — это **официальный стиль кодирования в Python**, принятый сообществом.
* Он описывает **правила форматирования кода**, чтобы код был читаемым и единообразным.

***

### **2. Основные правила PEP 8**

#### **2.1 Отступы**

* Используем **4 пробела** для уровня вложенности.

```python
def foo():
    if True:
        print("Hello")
```

#### **2.2 Именование**

* **Переменные, функции, методы:** `snake_case`
* **Классы:** `CamelCase`
* **Константы:** `UPPER_CASE`

```python
my_var = 10
def calculate_sum(): ...
class LoginPage: ...
MAX_RETRIES = 5
```

#### **2.3 Длина строки**

* Максимум **79 символов** для кода, 72 для docstring.

#### **2.4 Пробелы**

* После запятой, вокруг операторов, но **не лишние внутри скобок**.

```python
x = 1 + 2
numbers = [1, 2, 3]
```

#### **2.5 Импорты**

* Каждый импорт в новой строке.
* Стандартные библиотеки → сторонние → локальные.

```python
import os
import requests
from my_module import MyClass
```

#### **2.6 Пустые строки**

* 2 пустые строки между **классами и функциями верхнего уровня**.
* 1 пустая строка внутри класса между методами.

#### **2.7 Docstrings**

* Тройные кавычки `"""описание"""` для функций, классов, модулей.

```python
def add(a, b):
    """Возвращает сумму a и b."""
    return a + b
```
