Как прописать код, чтобы при вводе пользователем любого значения кроме числа выдавал "Ошибка!"

Потому что так, например если пользователь вводит слово вместо числа, то else не срабатывает.

user = int(input("Сколько вам лет?"))

if user >=18 and user <=100:
    print("Привет!")

elif user <18:
    print("Ты ещё мелкий")

else:
    print("Ошибка")

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

Автор решения: u111
x = input()
while True:
    try:
        int(x)
    except:
        print('Неправильный ввод!')
        x = input()
    else:
        y = int(x)
        break
if y > 18:
    ...
→ Ссылка
Автор решения: Clark Devlin

Помимо использования исключений есть и другой способ.

age = input("Сколько вам лет?")
while not age.isdigit():
    if not age.isdigit(): # проверяем, является ли вводимая строка числом
        print("Возраст должен быть числом")
    age = input("Сколько вам лет?")
age = int(age)
if 18 <= age <= 100:
    print("Привет!")
elif user < 18:
    print("Ты ещё мелкий")
else:
    print("Ошибка")

Программа у вас учебная, но стоит знать о подводном камне метода isdigit Если ввести нечто подобное, то мы получим True.

>>> '¹'.isdigit()
>>> True

Однако при попытке преобразовать этот ввод в числовой тип, мы получим ValueError

→ Ссылка
Автор решения: Fox Fox

В ответах, которые я тут вижу, не учитывается ввод таких вариантов, как: -4,12. Значения типа 4.12 для возраста не такие уж и неправильные, как может показаться. Ограничение в 100 лет тоже лишнее, а вдруг пользователь - разумная черепаха или Йода. Особенно если значение возраста передаётся в некую функцию (не в данном случае) программно. Не может быть такого? Может. Практически в каждый момент времени (кроме днюхи) наш точный возраст - ненатуральное число лет. Для того, чтоб избавиться от баловства и случайных ошибок, обработку ввода рекомендую усилить. И всегда предполагать, что программу будут ломать. Это стиль. Уважительность и грамотность в общении с пользователем, кстати, тоже не будут лишними. Вот консольный скрипт для тестирования:

import os
import math
    
v_age = input("\nУкажите Ваш возраст: ")
try:
    v_age = math.floor(abs(float(v_age.replace(",", "."))))
    if v_age >= 18:
        print("\nПривет!")
    else:
        print("\nВы несовершеннолетний!")
except Exception as e:
    print(f"Указано ошибочное значение возраста! Подробнее:\n{e}")
    
print("\nНажмите любую клавишу для продолжения...")
os.system("pause > nul" if os.name == "nt" else "read > /dev/null")
→ Ссылка
Автор решения: user634661
user = 0
while True:
    try:
        user = int(input("Сколько вам лет? "))
    except ValueError:
        print("Ошибка")
    else:
        break

if user >= 18 and user <= 100:
    print("Привет!")
else:
    print("Ты ещё мелкий")
→ Ссылка