Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.03.2024
Сообщений: 10

Фрукты с дисконтом

24.03.2024, 09:07. Показов 714. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо написать функцию fruit_ discounts (), которая снизит цену фруктов в словаре fruit на указанный в словаре fruit процент.
Функция должна вернуть новый словарь, ключи которого — фрукты, а значения — новые цены.
Если фрукта из словаря fruit нет в словаре discounts, то скидка к нему соответственно, цену округлить до первого знака после запятой.

Python
1
2
fruit = {'cumquat': 178.5, 'Oranges' : 250.4, 'Bananas': 187.0, 'Apples': 128.6, 'Pears': 179.58, 'Grapes': 405.99}
discounts = {'Apples': '24%', 'Grapes': '17%', 'Oranges': '33%'}
помогите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2024, 09:07
Ответы с готовыми решениями:

Система для работы с дисконтом
Здравствуйте, необходим учет дисконта что-то похожее на https://class365.ru/help/discount-card. Система необходима для установки на...

Класс фрукты
Вот заданиние: Создать программу, которая определяет общий базовый класс фрукты, которой описывает характеристики фруктов. Этот класс...

шары и фрукты
1. Найти число способов выбора 17 шаров из 9 красных, 7 черных, 6 белых, 11 синих шаров, если надо выбрать не менее 2 шаров каждого цвета,...

12
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.03.2024, 10:03
Дурацкая задача, мне не нравится…

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fruit = {'cumquat': 178.5, 'Oranges' : 250.4, 'Bananas': 187.0, 'Apples': 128.6, 'Pears': 179.58, 'Grapes': 405.99}
discounts = {'Apples': '24%', 'Grapes': '17%', 'Oranges': '33%'}
 
for i in discounts.keys():
    value = discounts[i]
    if not value.endswith('%'):
        raise ValueError(value)
    value = int(value[:-1])
    discounts[i] = value * 0.01
 
fruit2 = fruit.copy()
for i in fruit2.keys():
    if i in discounts:
        # снизит цену фруктов в словаре fruit на указанный в словаре fruit процент.
        fruit2[i] *= 1.0 - discounts[i]
    else:
        # Если фрукта из словаря fruit нет в словаре discounts, то скидка к нему соответственно, цену округлить до первого знака после запятой.
        fruit2[i] = round(fruit2[i], 1)
 
print(fruit2)
# {'cumquat': 178.5, 'Oranges': 167.76799999999997, 'Bananas': 187.0, 'Apples': 97.73599999999999, 'Pears': 179.6, 'Grapes': 336.9717}
1
0 / 0 / 0
Регистрация: 24.03.2024
Сообщений: 10
24.03.2024, 12:05  [ТС]
Спасибо.

а почему округление не сработало?

и самое "дурацкое", что требует написать именно функцию fruit_ discounts ()
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.03.2024, 12:16
Функция-то - это самое простое. А вот формат входных данных… Только гляньте на строчки 4-9 включительно. А их могло и не быть!
0
0 / 0 / 0
Регистрация: 24.03.2024
Сообщений: 10
24.03.2024, 12:32  [ТС]
и это тоже..
Совсем чтобы запутать...

без функции не принимает система ответ..
как переделать в неё?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.03.2024, 13:49
Python
1
2
3
4
5
6
7
8
9
fruit = {'cumquat': 178.5, 'Oranges': 250.4, 'Bananas': 187.0, 'Apples': 128.6,
         'Pears': 179.58, 'Grapes': 405.99}
discounts = {'Apples': '24%', 'Grapes': '17%', 'Oranges': '33%'}
 
def fruit_discounts():
    return dict( (k, round(fruit[k] * (100 - int(discounts[k][:-1])) / 100, 1))
                 for k in fruit.keys() & discounts.keys() )
 
print(fruit_discounts())
2
0 / 0 / 0
Регистрация: 24.03.2024
Сообщений: 10
24.03.2024, 14:00  [ТС]
те фрукты, которых нет во втором списке, должны вернуться в результирующий тоже (без скидки)
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.03.2024, 14:33
Лучший ответ Сообщение было отмечено NTaliska как решение

Решение

Цитата Сообщение от NTaliska Посмотреть сообщение
те фрукты, которых нет во втором списке, должны вернуться в результирующий тоже (без скидки)
Python
1
2
3
4
5
6
7
8
9
fruit = {'cumquat': 178.5, 'Oranges': 250.4, 'Bananas': 187.0, 'Apples': 128.6,
         'Pears': 179.58, 'Grapes': 405.99}
discounts = {'Apples': '24%', 'Grapes': '17%', 'Oranges': '33%'}
 
def fruit_discounts():
    return fruit | dict((k, round(fruit[k] * (100 - int(discounts[k][:-1])) / 100, 1))
                for k in fruit.keys() & discounts.keys())
 
print(fruit_discounts())
1
0 / 0 / 0
Регистрация: 24.03.2024
Сообщений: 10
24.03.2024, 15:37  [ТС]
спасибо большое!

Добавлено через 49 минут
прошу прощения, чем заменить вертикальную черту (|)?
не принимает с ней...
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.03.2024, 16:06
Цитата Сообщение от NTaliska Посмотреть сообщение
чем заменить вертикальную черту (|)?
не принимает с ней
Python
1
2
3
4
5
6
7
8
9
10
fruit = {'cumquat': 178.5, 'Oranges': 250.4, 'Bananas': 187.0, 'Apples': 128.6,
         'Pears': 179.58, 'Grapes': 405.99}
discounts = {'Apples': '24%', 'Grapes': '17%', 'Oranges': '33%'}
 
def fruit_discounts():
    fruit.update(dict((k, round(fruit[k] * (100 - int(discounts[k][:-1])) / 100, 1))
                        for k in fruit.keys() & discounts.keys()))
    return fruit
 
print(fruit_discounts())
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.03.2024, 16:17
| для словарей появилось в Python 3.9 (d3 = d1 | d2). До этого рекомендовалось объединять словари так:

Python
1
d3 = {**d1, **d2}
Добавлено через 2 минуты
idealist

Цитата Сообщение от NTaliska Посмотреть сообщение
Функция должна вернуть новый словарь,
2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.03.2024, 16:24
Лучший ответ Сообщение было отмечено NTaliska как решение

Решение

Ну, тогда так:
Python
1
2
3
4
5
6
7
8
9
fruit = {'cumquat': 178.5, 'Oranges': 250.4, 'Bananas': 187.0, 'Apples': 128.6,
         'Pears': 179.58, 'Grapes': 405.99}
discounts = {'Apples': '24%', 'Grapes': '17%', 'Oranges': '33%'}
 
def fruit_discounts():
    return {**fruit, **dict((k, round(fruit[k] * (100 - int(discounts[k][:-1])) / 100, 1))
                        for k in fruit.keys() & discounts.keys())}
 
print(fruit_discounts())
0
0 / 0 / 0
Регистрация: 24.03.2024
Сообщений: 10
24.03.2024, 16:34  [ТС]
теперь все прошло!
спасибо ОГРОМНОЕ!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2024, 16:34
Помогаю со студенческими работами здесь

Иван Царевич и Фрукты
Ограничение времени 2 секунды Ограничение памяти 256mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt ...

Фрукты,овощи,ягоды)
Кто нибудь выращивал из косточки что-то?Получилось ли?Если да скиньте интересно посмотреть) У меня Апельсинка растёт выросла на 80 см)но...

Сколько способов взять фрукты
В корзине лежат 5 яблок, 3 апельсина и 2 груши, которые отличаются только видами. Каждый день в течении 10 дней нужно брать по одному...

Змейка не всегда кушает фрукты
Начал писать змейку на C++: #include<iostream> #include<conio.h> #include<Windows.h> using namespace std; bool gameOver;...

написать программу про фрукты
Имеется некоторая совокупность фруктов (яблоки,груши) и ягод (рябина, арбуз). Для каждого фрукта и ягоды указано название (не более 6...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru