Не работает условие IF при проверке типа данных
На начальной стадии изучения Python, никак не могу понять почему не срабатывает условие?
print('Введите цифры: ')
a = input()
if (type(a) == int):
print('Вы ввели цифры: ', a)
else:
print('Вы ввели не цифры, а другие символы!')
Так же пробовал второй вариант кода. Все равно ничего не получается...
print('Введите цифры: ')
a = input()
if isinstance(a, int):
print('Вы ввели цифры: ', a)
else:
print('Вы ввели не цифры, а другие символы!')
Если в 2й строке пишу a = int(input()), то выдает ошибку File "C:/PYTHON/Studies/lesson2.py", line 2, in a = int(input()) ValueError: invalid literal for int() with base 10: 'gj'
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
a = input()
if (type(a) == int):
input всегда возвращает строку, поэтому не может быть числом
нужно сделать такой код для вышей цели
try:
value = int(input())
print(f'Вы ввели цифры: {value}')
except ValueError:
print('Вы ввели не цифры, а другие символы!')
так же можно использовать такой вариант:
value = input()
if value.isnumeric():
print(f'Вы ввели цифры: {value}')
else:
print('Вы ввели не цифры, а другие символы!')
Автор решения: CrazyElf
→ Ссылка
Можно проверить ещё вот так:
print('Введите цифры: ')
a = input()
if a.isdigit():
print('Вы ввели цифры: ', a)
else:
print('Вы ввели не цифры, а другие символы!')
input возвращает строку, но у строк есть методы проверки, в том числе, что строка состоит из цифр, что я и проверяю в этом коде.