Допустим, у меня есть файл под названием «Еда», в котором перечислены названия некоторых блюд и их цены. Некоторые из этих продуктов являются сырыми ингредиентами, а другие сделаны из разного количества этих ингредиентов. Например, я могу вручную указать цену яиц как 1 и обнаружить, что цена омлета по умолчанию равна 10, но затем обнаружить, что омлет будет только нужно 5 яиц, поэтому мне нужна программа, чтобы прочитать цену яиц, найти строку, содержащую омлет, и заменить ее на «омлет:» + str (5 * яйца). Мне также может понадобиться добавить дополнительные ингредиенты / продукты питания, например. стопка омлетов, состоящая из 5 омлетов. основная цель состоит в том, чтобы сделать возможным простое редактирование значения яиц и обновление значения омлета и кучи омелетов. Я начал код, просто создав список строк, содержащихся в файле.
with open("Food.txt") as g:
foodlist=g.readlines()
Файл «Food.txt» будет иметь следующий формат:
eggs: 5
omelette: 20
pileofomelettes: 120
и т.д... и после запуска кода он должен выглядеть так
eggs: 5
omelette: 25
pileofomelettes: 125
Я бы закодировал отношения вручную, так как вряд ли они когда-либо изменятся (и даже если бы они изменились, мне было бы довольно легко войти и изменить коэффициенты)
и будет читаться python в формате списка как что-то вроде
'['яйцо 2\n', 'мука 1\n', 'масло 1\n', 'сахар 3\n', 'миндаль 5\n', 'вишня 8\n']'
Я искал алгоритмы поиска/замены, которые могут искать определенную фразу и заменять ее другой конкретной фразой, но я не знаю, как бы я применил ее, если строка может быть изменена (пользователь может изменить исходный ингредиент значения, если он хотел обновить все значения, связанные с ним). Одно решение, которое я могу придумать, включает преобразование их в формат словаря, при этом все они перечислены как пара строковых и целых чисел, так что я мог бы просто заменить целую часть пары на основе целочисленных значений, хранящихся в других парах строк и целых чисел. , но, будучи неопытным, я не знаю, как бы я преобразовал список (или сам необработанный файл, даже лучше) в словарь.
Будем очень признательны за любые советы о том, как выполнять шаги этой программы :)
РЕДАКТИРОВАТЬ - в реальном приложении программы не имеет значения, в каком порядке элементы перечислены в конечном файле, поэтому, если я перечислил все сырьевые ингредиенты в 1 месте, а все составные элементы в другом (с большое пространство между ними, если нужно добавить больше необработанных элементов), тогда я мог бы просто переписать всю вторую половину файла в произвольном порядке без проблем, пока положение строки сырых ингредиентов остается прежним.
5 eggs -> 1 omelette
, или вы будете жестко кодировать ее? - person Teepeemm   schedule 14.09.2015