回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>因此,我的懒惰的后方正在尝试在python3.x中创建一个膳食计划生成器,这样我就不必每周五花30分钟来弄清楚我应该吃什么,但我对编码和一些东西还不熟悉。我仍在学习Udemy课程,但我想用代码来正确地学习。不管怎样,到目前为止我得到的是:</p>
<pre><code>class Meals():
def __init__(self,breakfast,lunch,dinner):
self.breakfast=breakfast
self.lunch=lunch
self.dinner=dinner
def __str__(self):
return f"Breakfast will be {self.breakfast}.\nLunch will be {self.lunch}.\nDinner will be {self.dinner}."
def cost(self):
day_meals=[self.breakfast,self.lunch,self.dinner]
day_cost=0
for i in day_meals:
for ingredient in i:
for key,value in Shop2.items():
if key in ingredient:
day_cost+=value
return f"Today will cost £{round(day_cost,2)}."
</code></pre>
<p>如果我这样做了:</p>
<pre><code> monday_meals=Meals(random.choice(list(breakfasts.keys())),random.choice(list(lunches.keys())),random.choice(list(dinners.keys())))
</code></pre>
<p>然后调用monday\u Diems.breakfast,然后我得到我想要的结果,从“早餐”字典中随机选择的键,但是每当我调用:
星期一餐费()
然后我得到£0,未显示错误</p>
<p>作为参考,我的测试词典如下:</p>
<pre><code>breakfasts={"a bowl of Rice Crispies":["cereal_1","milk"],"Weetabix":["cereal_2","milk"],"some Golden Grahams":["cereal_3","milk"],"toast":["bread","butter"],"scrambled eggs":["egg","egg","milk"]}
lunches={"cereal bars":["cereal_bar","cereal_bar"],"a boring ham sandwich":["bread","ham"],"some fruit":["banana","apple"],"salad":"salad_bag"}
dinners={"Student Meal #1":["mince","red_sauce","pepper","onion"],"Student Meal #2":["c_breast","white_sauce","onion","pepper"],"Student Meal #3":["egg","pepper","tomato","onion"]}
Shop2={"egg":0.3,"tomato":0.35,"pepper":0.33,"onion":0.4,"mince":1.2,"c_breast":0.7,"rice":0.8,"red_sauce":1.4,"white_sauce":1.5,"cereal_1":0.4,"milk":0.13,"cereal_2":0.35,"cereal_3":0.45,"bread":0.04,"butter":0.04,"cereal_bar":0.75,"ham":0.25,"banana":0.3,"apple":0.3,"salad":0.75}
</code></pre>
<p>如果能帮我找到一个更简单的方法来计算一天的餐费,我将不胜感激</p>