Предмет: Информатика, автор: Аноним

помогите найти ошибку

sum = int(input("Введите сумму покупки:"))


first_sale = 0.03

second_sale = 0.05


if sum >= 500:

final_sum = sum * first_sale

elif sum >= 1000:

final_sum = sum * second_sale

else:

print("Финальная сумма равна: " + final_sum)


restIess: а что программа делать должна вообще?
Аноним: она должна вычислять стоимость покупки с учетом скидки
restIess: а если у нас сумма больше 1к, то у нас 2 скидки идут сразу?
Аноним: second_sale это вторая скидка, а не две
restIess: у тебя elif никогда не выполнится
Аноним: как исправить тогда?
restIess: Если у нас от 500 до 1000, то первая скидка, а если выше 1000, то вторая скидка?
Аноним: да

Ответы

Автор ответа: restIess
1

Ошибок тут достаточно, по всем пройдемся.

Первая ошибка, переменная названа как встроенная функция в Python, так делать не нужно.

Вторая ошибка, забыл ограничить if, из-за которого не будет выполняться elif. Меняем его на:

if (sum>=500) and (sum<1000)

Третья ошибка, расчет финальной цены неверный, если использовать вариант, который дан сейчас, то мы найдем процент от этой суммы, а не сумму с начисленными процентами. Меняем на:

final_sum = sums * (1+first_sale)

final_sum = sums * (1+second_sale)

Четвертая ошибка, почему у нас вывод финальной суммы через else? Получается, что если выполняются условия выше, то не выводится сумма. Этот вывод мы можем опустить ниже, а в else написать, что ввели неверные данные (если конечно подразумевается, что пользователь не должен вводить число меньшее 500), либо в elif засунуть эту строку, полной задачи у меня нет, поэтому сам с этим разберешься.

Пятая ошибка, мы не можем сложить строку с числом, нам нужно преобразовать нашу переменную к строке с помощью str().

Исправленный код:

sums = int(input("Введите сумму покупки:"))

first_sale = 0.03

second_sale = 0.05

if sums >= 500 and sums < 1000:

   final_sum = sums * (1+first_sale)

   print("Финальная сумма равна: " + str(final_sum))

elif sums >= 1000:

   final_sum = sums * (1+second_sale)

   print("Финальная сумма равна: " + str(final_sum))

else:

   print("Введены неверные данные")


Аноним: спасибо огромное
restIess: Остались вопросы -> задавай
Похожие вопросы
Предмет: Математика, автор: блекли
Предмет: География, автор: gdima2005oydrl6