Как правильно составить условие?
Я не могу разобраться, как правильно составить условие программы. Сам код:
text = input('Введите текст: ')
if int(text):
print('Вы ввели число!')
else:
print('Вы ввели текст!')
Пишу телеграм бот, но конкретно этот кусок кода я не понимаю как сделать.
Если переменная text является int, то работает print.
Но как только боту написать обычный текст, сразу ошибка. Пишет: text не является int().
Помогите...
Ответы (2 шт):
Если переменная text является int
Для приведенного кода это неправильное понимание. Правильно так: если строку, содержащуюся в text можно преобразовать в целое число. int() превращает строку в число. Если такое невозможно. А если невозможно, то возникает ошибка. Что должно выйти на int("привет")? "привет" невозможно преобразовать в число, поэтому и ошибка.
Кстати, если ввести "0", то его можно преобразовать в целое число, но код все равно выдаст "вы ввели текст".
Один из вариантов - использовать try..except.
Как вариант можно через метод isdigit(). Возвращает True, если строка состоит только из цифр.
text = input('Введите текст: ')
if text.isdigit():
print('Вы ввели число!')
else:
print('Вы ввели текст!')