回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想写一个程序,让我可以使用多个过滤器和不同的数据类型搜索一组数据。这里我使用的是早餐食品,我想能够指定我希望每种食物的卡路里数,然后我想选择它是红色、棕色、黄色还是它们的混合物。然后,它应该打印出符合我的条件的每个项目的名称</p>
<p>然而,如果我想要一个红色的食物,我不会介意它是否也是棕色和/或黄色的。我还希望它打印出的项目名称,符合颜色规格,是相同的或少于我选择的卡路里数</p>
<p>我想能够搜索15种不同的颜色,但是,有没有更简单的方法来做到这一点</p>
<p>到目前为止,我已经写了一个很好的程序,我输入了大量的卡路里,然后从三种颜色中选择我想要的食物。然而,这涉及到为所有可能的输入编写指令。我想要15种可能的颜色,这意味着需要大量的输入代码。此外,如果以后我想添加或删除颜色选项,这也需要很长时间</p>
<pre><code>#Class definition
class Breakfast:
def __init__(self,name,number,is_red,is_brown,is_yellow):
self.name=name
self.number=number
self.is_red=is_red
self.is_brown=is_brown
self.is_yellow=is_yellow
#Food objects
Food_choices = [
Breakfast("Beans",300,True,False,False),
Breakfast("Sausage",400,False,True,False),
Breakfast("Bacon",500,True,True,False),
Breakfast("Toast",350,False,True,True),
Breakfast("Tomato",800,True,False,False),
Breakfast("Eggs",600,False,False,True),
Breakfast("Mushrooms",150,False,True,False)
]
#User input
calories = input("Enter calories ")
colour_a_input = input("Is is red? ")
colour_b_input = input("Is it brown? ")
colour_c_input = input("Is it yellow? ")
#Defining variables
coloura = ""
colourb = ""
colourc = ""
#Conveting input to Boolean values
if colour_a_input == "Yes":
coloura = True
else:
coloura = False
if colour_b_input == "Yes":
colourb = True
else:
colourb = False
if colour_c_input == "Yes":
colourc = True
else:
colourc = False
#Search function
for Breakfast in Food_choices:
if coloura is True:
if colourb is True:
if colourc is True:
if coloura == Breakfast.is_red and colourb == Breakfast.is_brown and colourc == Breakfast.is_yellow:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif colourc is not True:
if coloura == Breakfast.is_red and colourb == Breakfast.is_brown:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif colourb is not True:
if colourc is True:
if coloura == Breakfast.is_red and colourc == Breakfast.is_yellow:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif colourc is not True:
if coloura == Breakfast.is_red:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif coloura is not True:
if colourb is True:
if colourc is True:
if colourb == Breakfast.is_brown and colourc == Breakfast.is_yellow:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif colourc is not True:
if colourb == Breakfast.is_brown:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif colourb is not True:
if colourc is True:
if Breakfast.is_yellow is True:
if float(calories) >= Breakfast.number:
print(Breakfast.name)
elif colourc is not True:
print(Breakfast.name)
</code></pre>
<p>很抱歉发布了一个完整的文件,但如果没有所有的文件,我无法解决如何显示问题</p>