此代码适用于所有输入,但如果输入无效,则应返回“啤酒”。我不确定是否有办法在字典中包含一个变量,该变量允许python中所有其他未分配的输入(例如“ else”语句),因此在末尾尝试了“ else”语句,但是此语法无效,因为之前没有“ if”语句。最后,如果输入不在列表中,那么我做了一个笨拙的添加,然后返回啤酒,但是这不起作用。
def get_drink_by_profession(param):
p_to_d = param.title()
return{
"Jabroni":"Patron Tequila",
"School Counselor":"Anything with Alcohol",
"Programmer":"Hipster Craft Beer",
"Bike Gang Member":"Moonshine" ,
"Politician":"Your tax dollars",
"Rapper":"Cristal",
}[p_to_d]
if param not in p_to_d:
return "Beer"
您想进行安全获取并将“啤酒”作为默认值,如果不存在密钥refer here
def get_drink_by_profession(param):
p_to_d = param.title()
return{
"Jabroni":"Patron Tequila",
"School Counselor":"Anything with Alcohol",
"Programmer":"Hipster Craft Beer",
"Bike Gang Member":"Moonshine" ,
"Politician":"Your tax dollars",
"Rapper":"Cristal",
}.get(p_to_d, "Beer")
您可以在大型return语句之前访问p_to_d
,因此您要做的就是更改其顺序。
def get_drink_by_profession(param):
p_to_d = param.title()
if param not in p_to_d:
return "Beer"
return{
"Jabroni":"Patron Tequila",
"School Counselor":"Anything with Alcohol",
"Programmer":"Hipster Craft Beer",
"Bike Gang Member":"Moonshine" ,
"Politician":"Your tax dollars",
"Rapper":"Cristal",
}[p_to_d]