Есть ответ 👍

Основываясь на условии я сделал код а он не работает category = input('Категория (off - завершить):')
summa = int(input('Сумма:'))
if category.lower == 'Выпечка':
print('Скидка 30%. К оплате:',summa * 0.70)
elif category.lower() == 'Молочные продукты':
print('Скидка 10%. К оплате:',summa * 0.90)
else:
print('Сумма без скидки:', summa)
category = input('ВВедите категорию продуктов:')
print('Касса закрыта')

условие:
Программа должна запрашивать категорию и сумму, пока вместо категории не будет введено стоп-слово «off».

1. Когда вместо категории введено слово «off» — программа должна вывести «Касса закрыта.» и завершить работу.
2. Получив стоимость товаров, программа должна в зависимости от категории применить определённую скидку и вывести сумму к оплате на экран. Затем снова запросить ввод категории.
3. Если по введённой категории скидок нет, то программа должна без применения скидок вывести сумму к оплате.

Доступные скидки:
Категория «молочные продукты» — скидка 10%.
Категория «выпечка» — скидка 30%.

Итог:
Категория (off - завершить):
>>> выпечка
Сумма:
100
Скидка 30%. К оплате: 70.0
Введите категорию продуктов:
>>> off
Касса закрыта.

138
146
Посмотреть ответы 2

Ответы на вопрос:

Finzz
4,7(92 оценок)

Ошибки / Объяснение:

1. В условие сказано что будет запрашивать до тех пор, пока не будет off слова, буквально от слова "пока"(while на английском) должен стоять цикл While. Я поставила While True, а не пока не off, потому что тогда бы оно пошло после категории off еще спрашивать о сумме. В ином случае же можно было сделать while category != "off".

3. На 3ей строчке пропущены скобки: if category.lower() == 'выпечка'..

4. Проверку на регистр ты хорошо придумал, но ты немного ошибся, буквально ты сделал "Если выпечка == Выпечка, то", то-есть когда делаешь проверку для любого регистра на мелкие буквы, в ответе тоже должны быть мелкие буквы : if category.lower() == 'выпечка'..

В общем я подправила код, вот:

Python Code:

print('Категория (off - завершить):')

while True:

   category = input('Введите категорию продуктов:')

   if category.lower() == 'off':

       break

   summa = int(input('Сумма:'))

   if category.lower() == 'выпечка':

       print('Скидка 30%. К оплате:', summa * 0.70)

   elif category.lower() == 'молочные продукты':

       print('Скидка 10%. К оплате:', summa * 0.90)

   else:

       print('Сумма без скидки:', summa)

print('Касса закрыта.')


Program z1; beginvar a,d,n,i: integer; var s: real; write('сколько всего чисел будет'); read (n); writeln('вводите числа'); for i: =1 to n dobeginread(d); a: =a+d; end; s: =a/n; write ('среднее арифметическое=',s); end. пытался сделать ввод чисел как-то через массив или автозаполнением, но тогда надо кол-во чисел, а тут n.

Популярно: Информатика