【发布时间】:2021-01-04 19:52:30
【问题描述】:
我正在尝试制作一种问答游戏来记住鸡尾酒的规格。 我创建了一个名为“鸡尾酒”的字典,其中有作为鸡尾酒名称的键(Negroni,Aperol Spritz),作为值,每个鸡尾酒都有另一个字典,其中包含“烈酒”和“剂量”键以及值列表。我对此进行了编码并且它有效,但我想知道是否有更好的方法来做到这一点,因为我想添加更多的鸡尾酒。 我正在寻找一个循环,当答案正确时,它会“循环”列表中的每个值,而不必每次都使用 if/else 语句手动输入值。
如果答案正确,基本上我想自动循环遍历这两个:
cocktails["negroni"]["spirits"][0] 和cocktails["negroni"]["ml"][0]
所以每次循环继续时,[0] 应该变为1,然后在两行中变为 [2]。 我希望我解释清楚。 Ps:我对编程很陌生:)
这是我正在使用的代码: code
cocktails = {
"negroni": {
"spirits": ["gin", "vermouth", "campari"],
"ml": [25, 25, 25],
},
"aperol_spritz": {
"spirits": ["aperol", "prosecco", "soda"],
"ml": [50, 50, "top"]
}
}
cocktail = "Negroni"
print(cocktail)
stop_quiz = True
while stop_quiz:
guess = int(input(cocktails["negroni"]["spirits"][0] + ": "))
if guess != cocktails["negroni"]["ml"][0]:
continue
else:
guess = int(input(cocktails["negroni"]["spirits"][1] + ": "))
if guess != cocktails["negroni"]["ml"][1]:
continue
else:
guess = int(input(cocktails["negroni"]["spirits"][2] + ": "))
if guess != cocktails["negroni"]["ml"][2]:
continue
else:
print("You know how to make a " + cocktail + "!")
answer = input("Do you want to play again? ")
if answer == "yes":
continue
elif answer == "no":
print("See you soon!")
stop_quiz = False
【问题讨论】:
-
我建议看看classes。使用类时,您可以创建一个函数来验证类的每个属性的输入(在所有属性上创建一个 for 循环,如果所有属性都正确,则返回
True,否则返回False。 -
谢谢,我还没上课呢:)那我以后会更新项目的!
标签: python python-3.x list loops dictionary