# Числа и их методы

### **1. Основные числовые типы**

| Тип       | Пример         | Описание                 |
| --------- | -------------- | ------------------------ |
| `int`     | `10`, `-5`     | Целые числа              |
| `float`   | `3.14`, `-0.5` | Числа с плавающей точкой |
| `complex` | `2 + 3j`       | Комплексные числа        |

***

### **2. Методы и функции для чисел**

#### **2.1 Методы объектов `int` и `float`**

На самом деле у чисел мало встроенных методов, чаще используют **функции**:

```python
x = 10
y = -3.7
z = 3 + 4j
```

* `abs(x)` — абсолютное значение

```python
abs(-5)  # 5
abs(-3.7) # 3.7
```

* `round(x, n)` — округление до n знаков после запятой

```python
round(3.14159, 2)  # 3.14
```

* `complex(real, imag)` — создание комплексного числа

```python
c = complex(2, 3)  # 2 + 3j
```

* `divmod(a, b)` — возвращает `(частное, остаток)`

```python
divmod(10, 3)  # (3, 1)
```

* `pow(x, y)` — возведение в степень

```python
pow(2, 3)  # 8
pow(2, 3, 3) # 2**3 % 3 = 2
```

* `int()`, `float()`, `complex()` — приведение типов

```python
int(3.7)   # 3
float(5)   # 5.0
complex(2) # 2 + 0j
```

***

#### **2.2 Методы строковых представлений чисел**

```python
x = 255
print(bin(x))   # '0b11111111'  - двоичное
print(oct(x))   # '0o377'      - восьмеричное
print(hex(x))   # '0xff'       - шестнадцатеричное
```

***

### **3. Особенности чисел**

1. **Неизменяемость** — числа нельзя изменить, операции создают новый объект:

```python
x = 5
x += 2  # создаётся новый объект 7
```

2. **Поддержка всех стандартных операций**: `+`, `-`, `*`, `/`, `//`, `%`, `**`.
3. **Boolean-эквивалент**:

* `0` → `False`, все остальные числа → `True`

```python
bool(0)   # False
bool(10)  # True
```

***

### **4. Применение в автотестах**

* Проверка числовых значений API:

```python
response = {"status": "ok", "count": 10}
assert response["count"] > 0
```

* Генерация тестовых данных:

```python
for i in range(1, 6):
    assert i*i >= 1
```

* Работа с координатами на UI:

```python
x, y = 100, 200
move_to(x, y)
```

* Валидация значений с округлением:

```python
price = 3.14159
assert round(price, 2) == 3.14
```

***

💡 **Вывод:**

* Числа в Python — это **int, float, complex**, неизменяемые объекты.
* Основные методы и функции: `abs()`, `round()`, `pow()`, `divmod()`, `complex()`, а также преобразования типов.
* Используются для **вычислений, проверки данных и генерации тестовых данных**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-python/chisla-i-ikh-metody.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
