Python如何使用类似Switch Case的语句

Python如何使用类似Switch Case的语句

hash070 383 2022-02-21

首先Python中并没有Switch/Case语句。那么,该如何实现Switch/Case语句呢?

我们通过一个示例看。将数字1,2,3,4映射为Spring,Summer,Fall,Winter,而其它数字映射为Invalid Season。Java代码中可以用Switch/Case语句来实现:

public static String getSeason(int season) {
   String SeasonName = "";
   switch (season) {
   case 1:
      SeasonName = "Spring";
      break;
   case 2:
      SeasonName = "Summer";
      break;
   case 3:
      SeasonName = "Fall";
      break;
   case 4:
      SeasonName = "Winter";
      break;
   default:
      SeasonName = "Invalid Season";
      break;
   }
   return SeasonName;
}

由于Python中没有SwitchCase语句,所以有两种方式来实现

方法一:if else

def getSeason(season):
    """
    将season映射为字符串
    :param season:
    :return:
    """
    if season == 1:
        return "Spring"
    elif season == 2:
        return "Summer"
    elif season == 3:
        return "Fall"
    elif season == 4:
        return "Winter"
    else:
        return "Invalid Season"

方法二:使用字典(Dict)

可以定义一个字典,然后根据序号来获取相应的字符串

seasondict = {
    1: "Spring",
    2: "Summer",
    3: "Fall",
    4: "Winter"
}

def getSeason(season):
    """
    将season映射为字符串
    :param season:
    :return:
    """
    return seasondict.get(season, "Invalid Season")

如果是要执行方法的话

def Season1():
    return "Spring"
def Season2():
    return "Summer"
def Season3():
    return "Fall"
def Season4():
    return "Winter"
def Default():
    return "Invalid Season"
seasondict = {
    1: Season1,
    2: Season2,
    3: Season3,
    4: Season4
}

def getSeason(season):
    fun = seasondict.get(season, Default)
    return fun()#将这个方法返回并执行

#示例
print(getSeason(2))
#输出
Summer