0

Я не могу разобраться, как правильно составить условие программы. Сам код:

text = input('Введите текст: ')

if int(text): print('Вы ввели число!') else: print('Вы ввели текст!')

Пишу телеграм бот, но конкретно этот кусок кода я не понимаю как сделать.

Если переменная text является int, то работает print.

Но как только боту написать обычный текст, сразу ошибка. Пишет: text не является int().

Помогите...

insolor
  • 49,104

2 Answers2

4

Если переменная text является int

Для приведенного кода это неправильное понимание. Правильно так: если строку, содержащуюся в text можно преобразовать в целое число. int() превращает строку в число. Если такое невозможно. А если невозможно, то возникает ошибка. Что должно выйти на int("привет")? "привет" невозможно преобразовать в число, поэтому и ошибка.

Кстати, если ввести "0", то его можно преобразовать в целое число, но код все равно выдаст "вы ввели текст".

Один из вариантов - использовать try..except.

4

Как вариант можно через метод isdigit(). Возвращает True, если строка состоит только из цифр.

text = input('Введите текст: ')

if text.isdigit(): print('Вы ввели число!') else: print('Вы ввели текст!')

Eoki
  • 45