Как можно исправить ошибку "invalid literal for int() with base 10: '0 из 90'"?

Как исправить ошибку "invalid literal for int() with base 10: '0 из 90'" при использовании функции int() в Python?
  • 12 февраля 2024 г. 15:30
Ответы на вопрос 2
Ошибка "invalid literal for int() with base 10: '0 из 90'" указывает на то, что вы пытаетесь преобразовать строку, которая содержит не только числа, но и другие символы (в данном случае `' из 90'`), в целое число с помощью функции `int()`. Функция `int()` ожидает строку, содержащую только символы числа, возможно с начальным знаком '+' или '-'.

Чтобы исправить эту ошибку, вам нужно обеспечить передачу в функцию `int()` только числовой части строки. Например, если строка фиксированного формата и вы всегда хотите извлечь первое число, вы можете использовать строковые методы для разделения строки и извлечения числовой части:

```python
s = '0 из 90'
# Разделить строку по пробелу и выбрать первый элемент
number_str = s.split()[0]
# Преобразовать в целое число
number = int(number_str)
```

Если же формат строки может быть различным и вам нужно извлечь все числа, вы можете использовать регулярные выражения для поиска чисел в строке:

```python
import re

s = '0 из 90'
# Найти все числа в строке
numbers = re.findall(r'\d+', s)

# Преобразовать найденные числовые строки в целые числа
integers = [int(num) for num in numbers]
```

В данном случае, переменная `integers` будет содержать список `[0, 90]`, так как в строке `s` есть два числовых фрагмента '0' и '90'.

Если вам нужно обращаться к конкретному числу, просто выберите его по индексу:

```python
first_number = integers[0]  # Получить первое число
second_number = integers[1]  # Получить второе число
```

Обращение к индексу списке предполагает, что список содержит достаточное количество элементов, иначе возникнет IndexError. Убедитесь, что ваш список содержит нужное количество элементов перед обращением к ним по индексу.
Ты пытаешься преобразовать строку в число. А именно где то ты вот эту строку пытаешься преобразовать в число '0 из 90', ожидая что там '90' ну или '0'. То есть в буквальном смысле у тебя где то в коде происходит. int('0 из 90') Что выдаст точно такую же ошибку. Отлаживай что бы там было строковое представление целого числа.
Похожие вопросы