复杂的开关声明

时间:2015-03-21 16:34:25

标签: python switch-statement

例如,我有:

def run():
  x = input()
  switch (x):
    case 1:
      print "case 1"
    case 2:
      print "case 2"
      break;
    case 3:
      print "3"
    case (4,5):
      print "4"
      print "5"
      break;
    default:
      print "default"

它只是Python上的伪代码。我尝试使用真正的Python语法重写这个程序:

def run():
  x = input()
  if x == 1:
    print ("case 1")
  if x == 1 or x == 2:
    print ("case 2")
  else:
    if x == 3:
      print ("3")
    if x == 3 or x == 4 or x == 5:
      print ("4")
      print ("5")
    else:
      print ("default")

看起来很丑陋。我可以用另一种方式做到这一点;例如,使用词典?

2 个答案:

答案 0 :(得分:0)

使用elif功能

if x == 1:
    print ("case 1")
elif x == 1 or x == 2:
    print ("case 2")
elif x == 3:
  print ("3")
elif x == 4 or x == 5:
  print ("4")
  print ("5")
else:
  print ("default")

答案 1 :(得分:0)

您可以使用elif代替

else: 
    if x == 3:

在Python中,if - elif在您重写的代码中用作switch-case,如下所示。

def run(): 
    x = input() 
if x == 1: 
    print ("case 1") 
elif x == 2: 
    print ("case 2") 
elif x == 3: 
    print ("3") 
elif x == 4 or x == 5: 
    print ("4") 
    print ("5") 
else: 
    print ("default")

要使用字典,请点击此链接:Replacements for switch statement in Python