mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 02:54:25 +01:00
Translate Exceeds the linit for integer string conversion example
This commit is contained in:
parent
c125f25fb5
commit
3fc9e9e028
30
translations/README-ru.md
vendored
30
translations/README-ru.md
vendored
@ -1921,3 +1921,33 @@ a, b = a[b] = {}, 5
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### ▶ Превышение предела целочисленного преобразования строк
|
||||||
|
```py
|
||||||
|
>>> # Python 3.10.6
|
||||||
|
>>> int("2" * 5432)
|
||||||
|
>>> # Python 3.10.8
|
||||||
|
>>> int("2" * 5432)
|
||||||
|
```
|
||||||
|
**Вывод:**
|
||||||
|
```py
|
||||||
|
>>> # Python 3.10.6
|
||||||
|
222222222222222222222222222222222222222222222222222222222222222...
|
||||||
|
>>> # Python 3.10.8
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
ValueError: Exceeds the limit (4300) for integer string conversion:
|
||||||
|
value has 5432 digits; use sys.set_int_max_str_digits()
|
||||||
|
to increase the limit.
|
||||||
|
```
|
||||||
|
#### 💡 Объяснение:
|
||||||
|
Этот вызов `int()` прекрасно работает в Python 3.10.6 и вызывает ошибку `ValueError` в Python 3.10.8, 3.11. Обратите внимание, что Python все еще может работать с большими целыми числами. Ошибка возникает только при преобразовании между целыми числами и строками.
|
||||||
|
К счастью, вы можете увеличить предел допустимого количества цифр. Для этого можно воспользоваться одним из следующих способов:
|
||||||
|
- `-X int_max_str_digits` - флаг командной строкиcommand-line flag
|
||||||
|
- `set_int_max_str_digits()` - функция из модуля `sys`
|
||||||
|
- `PYTHONINTMAXSTRDIGITS` - переменная окружения
|
||||||
|
|
||||||
|
[Смотри документацию](https://docs.python.org/3/library/stdtypes.html#int-max-str-digits) для получения более подробной информации об изменении лимита по умолчанию, если вы ожидаете, что ваш код превысит это значение.
|
||||||
|
|
||||||
|
---
|
||||||
|
Loading…
Reference in New Issue
Block a user