我有一個編碼問題要解決。我做了一半,但我無法弄清楚休息。
這是問題所在:
你有一群朋友來參加你的高中聚會,你想帶他們去當地的餐館吃飯。您不確定其中是否有任何飲食限制,但您的餐廳選擇如下:
Joe's Gourmet Burgers - 素食:否,素食:否,無麩質:否
Main Street Pizza Company - 素食:是,素食:否, 無麩質:是
Corner Cafe - 素食:是,素食:是,無麩質:是
Mama's Fine Italian - 素食:是,素食:否,無麩質:否
The Chef's Kitchen - 素食:是,素食:是, 無麩質:是
撰寫一個程式,詢問您聚會的任何人數是素食者、純素食者還是無麩質,然后僅顯示您可以帶該團體去的餐館。
以下是程式輸出的示例:
Is anyone in your party a vegetarian ? yes
Is anyone in your party a vegan ? no
Is anyone in your party gluten-free ? yes
Here are your restaurant choices:
Main Street Pizza Company
Corner Cafe
The Chef's Kitchen
這是程式輸出的另一個示例:
Is anyone in your party a vegetarian ? yes
Is anyone in your party a vegan ? yes
Is anyone in your party gluten-free ? yes
Here are your restaurants choices:
Corner Cafe
The Chef's Kitchen
這是我到目前為止撰寫的代碼:
# Get the status of a party
vegetarian = input('Is anyone in your party a vegetarian(yes/no)? ')
vegan = input('Is anyone in your party a vegan(yes/no)? ')
gluten_free = input('Is anyone in your party gluten-free(yes/or)? ')
# Assign restaurants based on the status of a party
if vegetarian == 'yes' and vegan == 'yes' and gluten_free == 'yes':
print("Here are your restaurant choices: \n"
"Corner Cafe \n"
"The Chef's Kitchen")
elif vegetarian == 'no' and vegan == 'no' and gluten_free == 'no':
print("Here are your restaurant choices: \n"
"Joe's Gourmet Burgers")
這是輸出:
Is anyone in your party a vegetarian(yes/no)? yes
Is anyone in your party a vegan(yes/no)? yes
Is anyone in your party gluten-free(yes/or)? yes
Here are your restaurant choices:
Corner Cafe
The Chef's Kitchen
Is anyone in your party a vegetarian(yes/no)? no
Is anyone in your party a vegan(yes/no)? no
Is anyone in your party gluten-free(yes/or)? no
Here are your restaurant choices:
Joe's Gourmet Burgers
我想要的是寫一個宣告,根據答案隨機選擇餐館。
但我可以弄清楚如何。
有人可以告訴我怎么做嗎??
我沒有谷歌。我想學習。不復制。先感謝您。
uj5u.com熱心網友回復:
preferences = []
d = {"yes": True, "no": False}
# fill up company preferences
preferences.append(d[input("Is anyone in your party a vegetarian(yes/no)? ")])
preferences.append(d[input("Is anyone in your party a vegan(yes/no)? ")])
preferences.append(d[input("Is anyone in your party gluten-free(yes/or)? ")])
restaurants = { # initialize a dictionary of all restaurants
"Joe's Gourmet Burgers": [False, False, False],
"Main Street Pizza Company": [True, False, True],
"Corner Cafe": [True, True, True],
"Mama's Fine Italian": [True, False, False],
"The Chef's Kitchen": [True, True, True]
}
print("Here are your restaurant choices:")
for restaurant, peculiarities in restaurants.items(): # iterate restaurants
if all(map(lambda x: x[0] == x[1] or not x[1], zip(peculiarities, preferences))): # if a restaurant is good for company print it
print(restaurant)
uj5u.com熱心網友回復:
OOP:將餐廳建模為具有屬性的類實體。提供一個有意義的 str()。
按原樣輸入,遍歷 Restaurant 實體串列并將可能的內容放入串列中。
從串列中隨機選擇一項:
class Restaurant:
# allow mostly named params, no positional ones
def __init__(self, name, *, vegetarian=False, vegan=False, gluten_free=False):
self.name = name
self.vegetarian = vegetarian
self.vegan = vegan
self.gluten_free = gluten_free
def __str__(self):
s = [ k[0] for k in zip( ["Vegetarian", "Vegan", "Gluten free"],
(self.vegetarian, self.vegan, self.gluten_free)) if k[1]]
return f"{self.name} {'(' if s else ''}{', '.join(s)}{')' if s else ''}"
使用類編程:
restaurants = [
Restaurant("Joe's Gourmet Burgers"),
Restaurant("Main Street Pizza Company", vegetarian=True),
Restaurant("Corner Cafe", vegetarian=True, vegan=True, gluten_free=True),
Restaurant("Mama's Fine Italian", vegetarian=True),
Restaurant("The Chef's Kitchen", vegetarian=True, vegan=True, gluten_free=True),
]
vegetarian = input('Is anyone in your party a vegetarian(y=yes)? ').strip().lower()[0] == "y"
vegan = input('Is anyone in your party a vegan(y=yes)? ').strip().lower()[0] == "y"
gluten_free = input('Is anyone in your party gluten-free(y=yes)? ').strip().lower()[0] == "y"
print()
all_r = []
for r in restaurants:
# vegetarians can eat vegan, meat lovers can eat vegetarian or vegan
if (not gluten_free or r.gluten_free) and (not vegan or r.vegan) and (not vegetarian or r.vegetarian or r.vegan):
print(r)
all_r.append(r) # add to list for random choice
import random
print("\nWe decided on: ", random.choice(all_r)) # choose one from list random
2 次運行的輸出:
Is anyone in your party a vegetarian(y=yes)? n
Is anyone in your party a vegan(y=yes)? n
Is anyone in your party gluten-free(y=yes)? n
Joe's Gourmet Burgers
Main Street Pizza Company (Vegetarian)
Corner Cafe (Vegetarian, Vegan, Gluten free)
Mama's Fine Italian (Vegetarian)
The Chef's Kitchen (Vegetarian, Vegan, Gluten free)
We decided on: Joe's Gourmet Burgers
Is anyone in your party a vegetarian(y=yes)? y
Is anyone in your party a vegan(y=yes)? n
Is anyone in your party gluten-free(y=yes)? y
Corner Cafe (Vegetarian, Vegan, Gluten free)
The Chef's Kitchen (Vegetarian, Vegan, Gluten free)
We decided on: The Chef's Kitchen (Vegetarian, Vegan, Gluten free)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/379018.html
下一篇:痞子衡嵌入式:在i.MXRT1170上啟動含DQS的Octal Flash可不嚴格設Dummy Cycle (以MT35XU512為例)
