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