Ошибок тут достаточно, по всем пройдемся.
Первая ошибка, переменная названа как встроенная функция в 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("Введены неверные данные")
Автомат получает на вход трёхзначное десятичное число. По полученному числу строится новое десятичное
число по следующим правилам:
1. Вычисляются два числа — сумма старшего и среднего разрядов, а также сумма среднего и младшего разрядов
заданного числа.
2. Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример:
Исходное число: 277. Поразрядные суммы: 9, 14. Результат: 149.
Отметь, какие из приведённых ниже чисел могут получиться в результате работы автомата.
1111, 129, 133, 1914, 1819, 317, 911, 116.
(Выбери верные варианты)
О129
О 133
О 1914
0911
01111
О1819
Объяснение: