Member 13341498 Ответов: 1

Как проверить, является ли ввод пользователя строкой python3


Итак, что делать, если вы пытаетесь проверить чей-то ввод, является ли вход строкой или нет. Но всякий раз, когда вы ловите исключение в операторе, значение переменной удаляется. и вы больше не можете его печатать. как вы можете поймать исключение и все равно напечатать значение входных данных?
надеюсь, вы поняли, что я сказал


try:
    someValue =int(input('> '))
except ValueError:
    print(someValue)


[Редактировать]

Ошибка заключается в следующем:
NameError: name 'someValue' is not defined


Что я уже пробовал:

попытка представления sys.стандартного ввода.читать, sys файла.стандартного ввода.с readline
и многое другое

1 Ответов

Рейтинг:
10

Thomas Daniels

Вы не можете использовать someValue в except оператор, потому что он никогда не будет создан, если вы введете блок except. someValue будет содержать проанализированное целое число, но если вы не можете выполнить синтаксический анализ, присвоение переменной никогда не произойдет. Таким образом, "переменная удаляется" является ложным, "переменная никогда не создается" было бы правильным утверждением.

Попробуйте вместо этого:

user_input = input('> ')
try:
    some_value = int(user_input)
except ValueError:
    print(user_input)


Member 13341498

о, большое вам спасибо за это... я буквально потратил много часов, пытаясь исправить это..