← Все вопросы
ValueError: invalid literal for int() with base 10 — где у меня лишний символ?
5
Считываю число, а программа падает:
n = int(input("Введите число: "))
Ввёл 12 (с пробелом / а иногда 12.5) и получаю ValueError: invalid literal for int() with base 10: '12.5'. Что это значит?
2 ответа
10
✓ Принятый ответ — помог автору
int() умеет превращать в число только строку, которая выглядит как целое число. Строки '12.5', '12,5', '12px', 'двенадцать' для него непонятны — отсюда ValueError: invalid literal.
- Если ждёшь дробное — используй
float():
x = float(input()) # '12.5' -> 12.5
- Если в строке есть лишние пробелы — питон их обычно срезает сам, но точку/буквы он не простит.
Для целого числа вводи именно целое, без точки.
4
Если данные приходят "грязные" и хочется не падать, а попросить ввести заново — оберни в try/except:
try:
n = int(input())
except ValueError:
print("Это не целое число")
Ваш ответ
Войдите, чтобы ответить на вопрос.