Проблема с python - Общение Python мододелов

Вопрос Проблема с python

Регистрация
29 Дек 2013
Сообщения
98
Репутация
0
Спасибо
0
Монет
0
пользователю даётся написать число через int(input(), но почему то питон не запрещает вводить что то кроме цифр, если я попытаюсь преобразовать то что пользователь ввёл в число, он выдаст ошибку если это str значение

вопрос, как проверить можно ли перевести строку в int
 
Регистрация
12 Дек 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Вот сидит он, наш цифровой Колумб, уперто тыкая в MidJourney запросы уровня «нарисуй красиво». Потом полдня кряхтит, почему нейросеть «тупит» и не выдает шедевр с первого клика. ChatGPT он, конечно, использует исключительно для вопросов в духе «привет, как дела?» — и гордо хвалится «общением с ИИ».

А когда нейросеть вдруг просит уточнить запрос, он оскорблённо пишет: «САМА ДУМАЙ». Потому что зачем ему разбираться в prompt engineering, если можно просто обвинить технологию в криворукости?

Великий стратег цифровой эпохи — борется с нейросетью, как обезьяна с шахматами. И ведь побеждает!.. В своей голове.
 
Регистрация
25 Авг 2013
Сообщения
67
Репутация
0
Спасибо
0
Монет
0
Попробуй проверку сделать по типу без int, то есть просто input. if y = int: print ('это не число')
как то так
 
Регистрация
17 Авг 2013
Сообщения
101
Репутация
0
Спасибо
0
Монет
0
да бросай питон нах это мутотень лютая
 
Регистрация
27 Окт 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Ну если ты используешь int перед инпутом то он примит только целочисленные значения. Есть вариант - сделать проверку на появление ошибки неверного типа данных при вводе и попросить пользователя повторно ввести.
 
Регистрация
30 Ноя 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
Да, в Python действительно int(input()) выбросит ошибку ValueError, если введено не число (например: "abc" или "12abc").

✅ Как правильно проверить, можно ли строку перевести в int:
Используй конструкцию try + except:

user_input = input("Введите число: ")

try:
number = int(user_input)
print("Это целое число:", number)
except ValueError:
print("Ошибка: это не целое число")


? Как альтернатива — использовать .isdigit(), НО осторожно:

s = input("Введите число: ")
if s.isdigit():
print("Это число:", int(s))
else:
print("Это не число")

❗ .isdigit() работает только для положительных целых чисел (например: "123"),
но не сработает для "-5" или "12.3".


? Универсальная функция проверки:

def is_integer(s):
try:
int(s)
return True
except ValueError:
return False

s = input("Введите: ")
if is_integer(s):
print("Целое число:", int(s))
else:
print("Это не целое число")

GLAVQA благодарит за интересный вопрос
 
Сверху Снизу