Помогите найти ошибку в коде Python с input()
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)
Ответы (1 шт):
Автор решения: Space Researcher
→ Ссылка
Дело в том, 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()