Можете ли вы использовать переменную в switch-case в python? - PullRequest
0 голосов
/ 09 ноября 2019

Могу ли я использовать этот метод при кодировании на Python 3?

def switch_demo(argument):

    switcher = {
        51>switcher>13: "January",
        2: "February",
        3: "March",
        4: "April",
        5: "May",
        6: "June",
        7: "July",
        8: "August",
        9: "September",
        10: "October",
        11: "November",
        90>switcher>52: "December"
    }

print switcher.get(argument, "Invalid month")

Мой вопрос такой:

Я хочу получить диапазон чисел и код возврата.

Ответы [ 2 ]

1 голос
/ 09 ноября 2019

Получил ответ от Диапазон в качестве ключа словаря в Python

Попробуйте, если вам нужен диапазон значений в качестве ключей для словаря

switcher = dict(
                [(n, 'January')
                    for n in range(13,51)] +
                [(2, 'February')] +
                [(3, 'March')] +
                [(4, 'April')] +
                [(5, 'May')] +
                [(6, 'June')] +
                [(7, 'July')] +
                [(8, 'August')] +
                [(9, 'September')] +
                [(10, 'October')] +
                [(11, 'November')] +
                [(n, 'December') 
                    for n in range(52,90)]
                )
1 голос
/ 09 ноября 2019

Возможно, вы говорите о двух разных вещах: некоторые из значений вне диапазона и затем значения в диапазоне от 1 до 12:

def switch_demo(argument):
    switcher = {
        1: "January",
        2: "February",
        3: "March",
        4: "April",
        5: "May",
        6: "June",
        7: "July",
        8: "August",
        9: "September",
        10: "October",
        11: "November",
        12: "December"
    }
    return switcher.get(argument, "Invalid month")

def switch_range(argument):
    if argument <= 12:
        return switch_demo(argument)
    elif argument <= 51:
        return switch_demo(1)
    else:
        return switch_demo(12)
...