Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 21.10.2020
Сообщений: 3
1

Написать программу, которая может рекомендовать какую пищу приготовить

21.10.2020, 12:14. Просмотров 1881. Ответов 10


Добрый день!
Прошу помочь с заданием
имеется задание где нужно написать программу, которая может рекомендовать какую пищу приготовить, есть 4 булевые переменные, это bread (хлеб), cheese (сыр), egg (яйцо), meat (мясо)
то есть их значение True или False. В зависимости от значений этих переменных получается следующие варианты:
если есть хлеб, сыр, мясо и яйца, то чизбургер
если есть хлеб, яйца и мясо, то гамбургер
если есть хлеб с сыром, то бутерброд
если есть хлеб и яйца, то омлет
если есть хлеб и мясо, то котлеты

у меня никак не получается вывести результат после ввода строковых данных, надо ввести продукты а в результате получить блюдо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2020, 12:14
Ответы с готовыми решениями:

Написать программу с типизированным файлом, которая может может выполнять над ним заданные действия
Написать программу на delphi с типизированным файлом, которая может редактировать его, искать по...

Написать программу, которая может угадывать числа от 0 до 100
Надо написать программу которая может угадывать числа от 0 до 100

Написать программу, которая может быть переводчиком в «Королевстве кривых зеркал»:
Написать программу, которая может быть переводчиком в «Королевстве кривых зеркал»: слово, введенное...

Написать программу, которая выводит на экран меню и может обрабатывать ввод и вывод
Всем привет ! Учусь в швеции на шведском языке ! Дали задание написать программу, которая выводит...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы Fullstack-разработчиков на Python
10
Автоматизируй это!
Эксперт Python
4104 / 2804 / 835
Регистрация: 30.03.2015
Сообщений: 9,102
Записей в блоге: 14
21.10.2020, 12:15 2
Цитата Сообщение от bakyt Посмотреть сообщение
у меня никак не получается вывести результат после ввода строковых данных, надо ввести продукты а в результате получить блюдо
код, в студию!
0
0 / 0 / 0
Регистрация: 21.10.2020
Сообщений: 3
21.10.2020, 12:17  [ТС] 3
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
prod1 = input("Введите продукт: ")
prod2 = input("Введите продукт: ")
prod3 = input("Введите продукт: ")
prod4 = input("Введите продукт: ")
if prod1 == "хлеб" or "сыр" or "яйцо" or "мясо" and prod2 == "сыр" or "хлеб" or "яйцо" or "мясо" and prod3 == "яйцо" or "сыр" or "хлеб" or "мясо" and prod4 == "мясо" or"сыр" or "хлеб" or "яйцо":
    print("Это чизбургер")
if prod1 == "яйцо" or "хлеб" or "мясо" and prod2 == "хлеб" or "яйцо" or "мясо" and prod3 == "мясо" or "хлеб" or "яйцо":
    print("Это гамбургер")
if prod1 == "сыр" or "хлеб" and prod2 == "хлеб" or "сыр":
    print("Это бутерброд")
if prod1 == "хлеб" or "яйцо" and prod2 == "яйцо" or "хлеб":
    print("Это омлет")
if prod1 == "хлеб" or "мясо" and prod2 == "мясо" or "хлеб":
    print("Это котлет")
0
1181 / 776 / 387
Регистрация: 12.03.2018
Сообщений: 2,215
21.10.2020, 12:29 4
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
prods = set((input('Введите продукт: ') for _ in range(4)))
 
dct = {
    'чизбургер': {'хлеб', 'сыр', 'мясо', 'яйца'},
    'гамбургер': {'хлеб', 'мясо', 'яйца'},
    'бутерброд': {'хлеб', 'сыр'},
    'омлет': {'хлеб', 'яйца'},
    'котлеты': {'хлеб', 'мясо'}
}
 
for k, v in dct.items():
    if prods.intersection(v) == v:
        print(k)
0
0 / 0 / 0
Регистрация: 21.10.2020
Сообщений: 3
21.10.2020, 12:53  [ТС] 5
Цитата Сообщение от ioprst Посмотреть сообщение
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
prods = set((input('Введите продукт: ') for _ in range(4)))
 
dct = {
    'чизбургер': {'хлеб', 'сыр', 'мясо', 'яйца'},
    'гамбургер': {'хлеб', 'мясо', 'яйца'},
    'бутерброд': {'хлеб', 'сыр'},
    'омлет': {'хлеб', 'яйца'},
    'котлеты': {'хлеб', 'мясо'}
}
 
for k, v in dct.items():
    if prods.intersection(v) == v:
        print(k)
при вводе хлеб сыр мясо яйца выводятся все блюда,
а когда пытаюсь получить например "омлет" приходится два раза нажимать на enter чтобы пропустить ввод и получить блюдо



Добавлено через 2 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
код, в студию!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
prod1 = input("Введите продукт: ")
prod2 = input("Введите продукт: ")
prod3 = input("Введите продукт: ")
prod4 = input("Введите продукт: ")
if prod1 == "хлеб" or "сыр" or "яйцо" or "мясо" and prod2 == "сыр" or "хлеб" or "яйцо" or "мясо" and prod3 == "яйцо" or "сыр" or "хлеб" or "мясо" and prod4 == "мясо" or"сыр" or "хлеб" or "яйцо":
print("Это чизбургер")
if prod1 == "яйцо" or "хлеб" or "мясо" and prod2 == "хлеб" or "яйцо" or "мясо" and prod3 == "мясо" or "хлеб" or "яйцо":
print("Это гамбургер")
if prod1 == "сыр" or "хлеб" and prod2 == "хлеб" or "сыр":
print("Это бутерброд")
if prod1 == "хлеб" or "яйцо" and prod2 == "яйцо" or "хлеб":
print("Это омлет")
if prod1 == "хлеб" or "мясо" and prod2 == "мясо" or "хлеб":
print("Это котлет")
0
1181 / 776 / 387
Регистрация: 12.03.2018
Сообщений: 2,215
21.10.2020, 13:04 6
Цитата Сообщение от bakyt Посмотреть сообщение
хлеб сыр мясо яйца выводятся все блюда
ну добавьте break после print

Цитата Сообщение от bakyt Посмотреть сообщение
а когда пытаюсь получить например "омлет" приходится два раза нажимать на enter чтобы пропустить ввод и получить блюдо
Замените for на while для ввода данных
0
Эксперт Python
4443 / 1878 / 342
Регистрация: 17.03.2012
Сообщений: 9,665
Записей в блоге: 5
21.10.2020, 13:21 7
Я бы делал через двоичное кодирование продуктов.
Примерно так:
Python
1
2
3
4
хлеб=1
сыр=2
мясо=4
яйца=8
Тогда каждое сочетание продуктов кодируется числом:
Python
1
2
хлеб | сыр == 3
сыр | мясо | яйца == 14
Ну а далее списочек.
0
640 / 525 / 73
Регистрация: 29.01.2013
Сообщений: 3,446
21.10.2020, 13:48 8
Цитата Сообщение от dondublon Посмотреть сообщение
через двоичное кодирование продуктов
тогда уже завести строку на 4 символа и играться с 0\1. Например в таком порядке: bread (хлеб), cheese (сыр), egg (яйцо), meat (мясо). Т.е. если у нас омлет, то будет 1010, если котлеты - 1001
0
Эксперт Python
4443 / 1878 / 342
Регистрация: 17.03.2012
Сообщений: 9,665
Записей в блоге: 5
21.10.2020, 14:12 9
Alli_Lupin, ну так это но и есть, только без строки
0
Просто Лис
Эксперт Python
4246 / 2656 / 911
Регистрация: 17.05.2012
Сообщений: 7,916
Записей в блоге: 9
21.10.2020, 15:41 10
Цитата Сообщение от bakyt Посмотреть сообщение
prod1 == "сыр" or "хлеб" and prod2 == "хлеб" or "сыр":
Ошибка.

Надо
Python
1
(prod1 == "сыр" or prod1 == "хлеб") and (prod2 == "хлеб" or prod2 == "сыр")
Добавлено через 42 секунды
Правда, тогда условие может сработать на пару хлеб/хлеб.

Добавлено через 2 минуты
И вообще надо читать задание
Python
1
2
3
4
5
6
7
8
9
bread = True
cheese = True
egg = True
meat = False
 
#если есть хлеб, сыр, мясо и яйца, то чизбургер
if bread and cheese and meat and egg:
    print('чизбургер')
elif
0
2398 / 1724 / 732
Регистрация: 21.03.2016
Сообщений: 4,533
21.10.2020, 21:33 11
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dct = {
    'чизбургер' : ['хлеб', 'сыр', 'мясо', 'яйца'],
    'гамбургер' : ['хлеб', 'мясо', 'яйца'],
    'бутерброд' : ['хлеб', 'сыр'],
    'омлет' : ['хлеб', 'яйца'],
    'котлеты' : ['хлеб', 'мясо']
    }
 
lst = set()
while True:
    prod = input('>>: ')
    if not prod:
        break
    lst.add(prod)
    
lst = sorted(lst)
for key,val in dct.items():
    if sorted(val) == lst:
        print(key)
        break
оптимально сразу в словаре списки создать отсортированными
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2020, 21:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Написать программу, которая поможет точно определить, может ли выиграть выбранная лошадь
Иван Иванович любит ходить на скачки, надеясь на них заработать кругленькую сумму. Ему приглянулась...

Хочу написать программу которая может отправлять СМС сообщения на любые операторы мира
Доброго времени суток. Уважаемые форумчане, не могли бы Вы помочь начинающему программисту. Хочу...

Написать программу которая определяет, может ли служить заданная запись числом в шестнадцатеричной счисления
Написать программу которая определяет, может ли служить заданная запись числом в шестнадцатеричной...

Написать программу, которая определит, сколькими способами он может попасть в магазин, пройдя ровно K шагов
Магазин (Время: 1 сек. Память: 16 Мб Сложность: 34%) На расстоянии N шагов от магазина стоит...

Написать программу, которая может быть переводчиком в «Королевстве кривых зеркал»: Буквы в слове переставляются задом наперед
добрый день! очень нужна ваша помощь в решении одной задачки. не поможете? :) Написать программу,...

Определите, какие рецепты Марина может приготовить
Марина пригласила гостей и хочет поразить их своим кулинарным мастерством. На магазин времени не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.