Помогите найти ошибку в коде Python с input()

Рейтинг: 0Ответов: 1Опубликовано: 09.04.2023
print("Выберите вид фундамента:")
print("1. Свайно-винтовой")
print("2. Блоки 20")
print("3. Блоки 200")
print("4. Плиты дорожные")
print("5. Плиты")
found = input()
print("Сколько блоков фундамента Вы берёте?")
quan = int(input())
if found == 1:
    print(1000 * quan)
elif found == 2:
    print(2000 * quan)
elif found == 3:
    print(2200 * quan)
elif found == 4:
    print(750 * quan)
else:
    print(500 * quan)    

Ответы

▲ 5

Дело в том, found = input() возвращает строку,т.к. функция input() всегда вернёт строку,а не число и далее при проверке if found == 1 ни один if не срабатывает.
Вам следует написать found = int(input()) , если вы точно знаете, что пользователь введёт число.

Также, в качестве альтернативы, можете делать проверку так:

if found == "1":
    print(1000 * quan)
elif found == "2":
    print(2000 * quan)
elif found == "3":
    print(2200 * quan)
elif found == "4":
    print(750 * quan)
else:
    print(500 * quan)    

Более того, переменные лучше называть более говорящими именами и делать проверку ввода данных от пользователя, ну вот хотябы так:

found_type = input()
if( not(found_type.isdigit()) or (int(found_type)<1) or (int(found_type)>5) ):
    print("Неверные данные!")
    exit()