我从字典里问用户一组问题:
questions = {
"strong": "Do ye like yer drinks strong? ",
"salty": "Do ye like it with a salty tang? ",
"bitter": "Are ye a lubber who likes it bitter? ",
"sweet": "Would ye like a bit of sweetness with yer poison? ",
"fruity": "Are ye one for a fruity finish? "
}
这些键与另一个字典相关联:
^{pr2}$我通过为每个问题设置一个“简单”if/elif集来询问他们的问题,并将他们的答案分配到一个新字典中:
beverage = {}
def drink():
"""Find out user preferences and assign to new dictionary"""
if raw_input(questions["strong"]).lower() == "yes":
beverage["strong"] = ingredients["strong"]
elif raw_input(questions["strong"]).lower() == "no":
return False
if raw_input(questions["salty"]).lower() == "yes":
beverage["salty"] = ingredients["salty"]
elif raw_input(questions["salty"]).lower() == "no":
return False
...
drink()
最后印刷饮料:
print beverage
如果用户说“是”,一切都很好。在
但是,如果用户回答“否”,则会再次询问第一个问题(可能是因为我使用raw_input()的if/elif结构),然后跳过完成脚本的所有其他问题。在
我如何组织它,这样如果用户对第一个问题说“不”,它就会问下一个问题,而不是每个问题都问两次?在
打印输出:
Do ye like yer drinks strong? yes
Do ye like it with a salty tang? no
Do ye like it with a salty tang? yes
Are ye a lubber who likes it bitter? no
Are ye a lubber who likes it bitter? yes
Would ye like a bit of sweetness with yer poison? no
Would ye like a bit of sweetness with yer poison? yes
Are ye one for a fruity finish? no
Are ye one for a fruity finish? yes
Yer cocktail is a made of a
['glug of rum']
出现此问题是因为在每个
if..elif
情况下都会得到一个新的输入字符串。相反,您需要将输入分配给一个变量,并使用if..elif
进行检查。在问两次问题:
问一次问题:
^{pr2}$相关问题 更多 >
编程相关推荐