Ввод с клавиатуры, если это число писать "Это число", если не число писать"Это не число"

Ввод с клавиатуры, если это число писать "Это число", если не число писать "Это не число". У меня не получилось, т.к. input() присваивает только тип str, а int(input()) только int. Мне нужно чтобы было и то и другое.


Ответы (3 шт):

Автор решения: Çℏėτᶄắɤẵ Çℏėτɤᶉᶄắ

В данном случае будет лучше использовать встроенный метод .isdigit(), однако он работает только для неотрицательных чисел (тип int)

a=input()
if a.isdigit(): #проверяем, является ли строка записью целого числа
    print('Число')
else:
    print('Не число')

В одну строчку:

print('Число' if input().isdigit() else 'Не число')
→ Ссылка
Автор решения: Amgarak

А можно обработать через исключение:

user_input = input("Введите значение: ")

try:
    number = float(user_input)
    print("Это число")
except ValueError:
    print("Это не число")
→ Ссылка
Автор решения: Глеб

Можно вот так:

def checker(num):
    if num[0] == '-' and len(num) > 1: num = num[1:]
    if all(i.isdecimal() for i in num.split('.')) and len(num.split('.')) in [1, 2]:
        print("Это число")
    else:
        print("Это не число")

    
>>> print(checker('123'))
Это число
>>> print(checker('1.23'))
Это число
>>> print(checker('1.23.23'))
Это не число
>>> print(checker('1b'))
Это не число
→ Ссылка