如何缩短这个if/elif python代码?

如何缩短这个if/elif python代码?,python,Python,我有一个自动售货机的if代码,我觉得它可以缩短,有什么想法吗 Potato_size = raw_input(“Would you like a small, medium or large potato?”) if Potato_size == “Small”: print “The price is £1.50 without toppings, continue?” elif Potato_size == “Medium”: print “The price is £2.0

我有一个自动售货机的if代码,我觉得它可以缩短,有什么想法吗

Potato_size = raw_input(“Would you like a small, medium or large potato?”)
if Potato_size == “Small”:
    print “The price is £1.50 without toppings, continue?”
elif Potato_size == “Medium”:
    print “The price is £2.00 without toppings, continue?”
elif Potato_size == “Large”:
    print “The price is £2.50 without toppings, continue?”
else:
    print “Please answer Small, Medium or Large.”

感谢您删除了
if/elif
子句

Potato_size = raw_input("Would you like a small, medium or large potato?")

Sizes={"Small":"£1.50","Medium":"£2.00","Large":"£2.50"}
try:
   print "The price is {} without toppings, continue?".format(Sizes[str(Potato_size)])
except NameError:
    print "Please answer Small, Medium or Large."

这应该删除
if/elif
子句

Potato_size = raw_input("Would you like a small, medium or large potato?")

Sizes={"Small":"£1.50","Medium":"£2.00","Large":"£2.50"}
try:
   print "The price is {} without toppings, continue?".format(Sizes[str(Potato_size)])
except NameError:
    print "Please answer Small, Medium or Large."

你可以用dict来缩短这个

potato_size ={
    "small": “The price is £1.50 without toppings, continue?”
    "medium":“The price is £2.00 without toppings, continue?”
    "large" :“The price is £2.50 without toppings, continue?”
}
user_input =  raw_input(“Would you like a small, medium or large potato?”)
if user_input in potato_size :
    print potato_size[user_input]
else:
    print “Please answer Small, Medium or Large.”

你可以用dict来缩短这个

potato_size ={
    "small": “The price is £1.50 without toppings, continue?”
    "medium":“The price is £2.00 without toppings, continue?”
    "large" :“The price is £2.50 without toppings, continue?”
}
user_input =  raw_input(“Would you like a small, medium or large potato?”)
if user_input in potato_size :
    print potato_size[user_input]
else:
    print “Please answer Small, Medium or Large.”

不是最好的,但这是最短的张贴

sizes={"SMALL":"£1.50","MEDIUM":"£2.00","LARGE":"£2.50"}
price_str = {k: "The price is {} without toppings, continue?".format(v)
                 for k, v in sizes.iteritems()}

potato_size = raw_input("Would you like a small, medium or large potato?  ")
print price_str.get(potato_size.upper(), "Please answer Small, Medium or Large.\n")

不是最好的,但这是最短的张贴

sizes={"SMALL":"£1.50","MEDIUM":"£2.00","LARGE":"£2.50"}
price_str = {k: "The price is {} without toppings, continue?".format(v)
                 for k, v in sizes.iteritems()}

potato_size = raw_input("Would you like a small, medium or large potato?  ")
print price_str.get(potato_size.upper(), "Please answer Small, Medium or Large.\n")

更好的使用更好的使用是的!这是你真正应该使用的方法,除了名称错误:而不是毛毯例外者使用尺寸。获取(str(土豆大小,'这不是特价')是的!这是你真正应该使用的方法,除了名称错误:而不是使用尺寸。get(str(Potato_size,'This not sale'))硬编码要在字典中打印的整个语句不是一个灵活的解决方案。硬编码要在字典中打印的整个语句不是一个灵活的解决方案。