Рубрики
Без рубрики

Замена для выключателя коммутатора в Python?

Резюме: Поскольку операторы коммутатора не являются частью Python, вы можете использовать один из следующих способов для создания коммутатора Country Constract в вашем коде: с использованием разбивки Python Crequicting пользовательский коммутатор, классифицируя elif-else Условная Проблема функций: учитывая сценарий случая коммутатора управления выбором в Python; Как найти … Замена для выключателя переключения в Python? Читать далее “

Автор оригинала: Shubham Sayon.

Резюме: Поскольку операторы коммутатора не являются частью Python, вы можете использовать один из следующих методов для создания конструкции коммутатора в вашем коде:

  • Используя Словарь Python.
  • Создание пользовательского коммутатора Класс
  • Использование IF-ELIF - else Условные заявления
  • Используя Лямбда функция

Проблема: Учитывая сценарий случая коммутатора управления выбором в Python; Как найти замену оператора Switch, поскольку Python не имеет предоставления операторов переключателей.

Обзор : Прежде чем мы обсудим решения нашей проблеме, у нас должна быть четкая картина самого оператора коммутатора. Чтобы понять выключатели, давайте ответим на несколько вопросов:

Что такое выключатель?

На языках программирования, такие как C, C ++, C # и Java, коммутатор – это условное утверждение, используемое для проверки значения переменной, а затем сравнить это значение с несколькими случаями. После того, как соответствующий корпус будет выполнен блок кода, определенного в соответствующем корпусе. Давайте посмотрим на следующую последователь блок-схемы, чтобы визуализировать принцип работы переключателя:

Переключатель против если-другое

В программе, которая нуждается в комплексном наборе вложенного Если Заявления, оператор коммутатора всегда является лучшей и более эффективной альтернативой в таких ситуациях. Ниже приведены некоторые из ключевых факторов, которые должны быть приняты во внимание при принятии решения о том, следует ли использовать операторы переключателя или утверждения IF-Enf в коде:

  1. Если количество случаев больше, то операторы переключателя всегда более эффективны и быстрее, чем Если-ж Отказ
  2. Заявления о случаях переключателя более подходят для фиксированных значений данных, тогда как Если-ж Условные условные должны использоваться в случае логических ценностей.
  3. Выключатели выключателей проверьте выражения, основанные только на одном параметре/вариабельном значении, тогда как Если-ж Условные заявления могут быть использованы для проверки выражений на Диапазон ценностей.

Есть несколько других факторов, регулирующих правильное использование двух утверждений. Тем не менее, это за пределами объема этой статьи, поскольку мы собираемся сосредоточиться на замене для выключателей в Python в этой статье. Теперь, когда приносит нас к следующему и, вероятно, самый важный вопрос.

Почему Python не имеет оператора «Switch»?

Возможно, вы были удивлены все время, почему мы даже предлагаем решение для замены оператора выключателя в Python. У Python не имеет оператора «Switch»?

Ответ – НЕТ!!! Python не нужен один.

  • Большинство языков программирования имеют операторы коммутатора, потому что им не хватает правильных сопоставленных конструкций. Находясь в Python, у нас есть четко определенные сопоставления конструкции, и вы можете легко иметь таблицу сопоставления в виде Python Словарь Отказ
  • Кроме того, Python не имеет выяснения коммутатора, потому что ни одно из предложений, которые не были предложены до сих пор до сих пор считались приемлемыми.

Примечание : Guido Van Rossum, Создатель Python, говорит, «Некоторые вид оператора коммутатора находятся на многих языках, и неразумно ожидать, что его дополнение к Python позволит нам более чисто и эффективно записать определенный код, чем раньше».

Таким образом, это может указать, что в будущем мы можем обнаружить, что оператор выключателя реализован в Python, хотя вряд ли это произойдет в ближайшее время. (Но будущее полоно непредсказок !!!)

Теперь, когда у нас есть обзор коммутатора-оператора, давайте узнаем альтернативы для выключателей, которые можно использовать в Python.

Растворы

Давайте обсудим, как мы можем создавать альтернативы для переключения чехлов и попросить пользователя выбрать опцию для операции, которую они хотят выполнить. На основании выбора пользователей вывод будет отображаться. Вот образец производительности того, что мы хотим достичь:

Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division

Enter your choice: 1
Enter 1st Number: 500
Enter 2nd Number: 2000
Answer =  2500

Так что без дальнейшей задержки, пусть игры начинаются!

Метод 1: Использование словаря

А Словарь В Python хранит предметы в виде пар клавишных пар, такие что определенное значение отображает на определенный ключ. Давайте посмотрим на следующий код, чтобы понять, как мы можем использовать словарь в качестве альтернативы для переключения регистра и решить нашу проблему ( Пожалуйста, следуйте комментариям, чтобы получить лучшее сцепление) :

# The default case when no case matches
def default(a, b):
    return "Invalid Entry!"


def switch(option, a, b):
    # create the dictionary and switch-cases / choices
    return {
        '1': lambda a, b: a + b,
        '2': lambda a, b: a - b,
        '3': lambda a, b: a * b,
        '4': lambda a, b: a / b,
    }.get(option, default)(a, b)


# User Menu Prompt
print('''
Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division
''')
# Accept User Entry
choice = input("Enter your choice: ")
x = int(input("Enter 1st Number: "))
y = int(input("Enter 2nd Number: "))
# Pass Values Entered by User to evaluate and then Print the output
print(switch(choice, x, y))

Выход:

Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division

Enter your choice: 1
Enter 1st Number: 15
Enter 2nd Number: 50
Answer =  65

Вы можете попробовать это самостоятельно в нашем интерактивном коде Shell!

Упражнение : Нажмите разные клавиши и попробуйте различные варианты!

То, что нужно запомнить:

  • Получить () Это встроенная функция в Python, которая возвращает значение для указанного ключа.
  • лямбда Это ключевое слово в Python, который используется для определения анонимной функции внутри другой функции.

Я настоятельно рекомендую вам пройти эти статьи для глубокого понимания функций Lambda и Python Python и их использование:

  1. Узнайте о словарях Python.
  2. Узнайте о функции Python Lambda.

Если вам не комфортно с использованием Получить () и лямбда У меня тоже есть решение для вас. Посмотрите на следующий код, который может быть немного долейным и сложным с точки зрения использования времени и памяти, но, безусловно, проще понять:

# Addition
def choice1(x, y):
    return x + y


# Subtraction
def choice2(x, y):
    return x - y


# Multiplication
def choice3(x, y):
    return x * y


# Division
def choice4(x, y):
    return x / y


def switch(option, a, b):
    try:
        # create the dictionary and switch-cases / choices
        return {
            '1': choice1,
            '2': choice2,
            '3': choice3,
            '4': choice4,
        }[choice](x, y)
    except KeyError:
        # Default Case
        return 'Invalid Entry!'


# User Menu Prompt
print('''
Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division
''')
# Accept User Entry
choice = input("Enter your choice: ")
x = int(input("Enter 1st Number: "))
y = int(input("Enter 2nd Number: "))
# Pass Values Entered by User to evaluate and then Print the output
print("Answer = ", switch(choice, x, y))

Выход

Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division

Enter your choice: 2
Enter 1st Number: 20
Enter 2nd Number: 10
Answer =  10

Способ 2: Создание класса коммутатора

Другой обходной путь для использования случаев переключателя в наших программах – создать класс с базовым функциями коммутатора, определенной в нем. Мы можем определить каждый случай в отдельных функциях внутри класса.

Давайте посмотрим на следующую программу, чтобы понять, как мы можем создать класс коммутатора (как всегда, я просим прочитать комментарии в коде, чтобы получить лучшее сцепление):

class SwitchCase:
    def case(self, option, x, y):
        default = "Invalid Entry!"
        # lambda invokes the default case
        # getattr() is used to invoke the function choice that the user wants to evaluate 
        return getattr(self, 'choice' + str(option), lambda x, y: default)(x, y)

    # Addition
    def choice1(self, x, y):
        return x + y

    # Subtraction
    def choice2(self, x, y):
        return x - y

    # Multiplication
    def choice3(self, x, y):
        return x * y

    # Division
    def choice4(self, x, y):
        return x / y

    # Default Case
    def default(self, x, y):
        return "Invalid Entry!"


# creating the SwitchCase class object
switch = SwitchCase()
# User Menu Prompt
print('''
Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division
''')
# Accept User Entry
option = input("Enter your choice: ")
x = int(input("Enter 1st Number: "))
y = int(input("Enter 2nd Number: "))
# Pass Values Entered by User to evaluate and then Print the output
print("Answer = ", switch.case(option, x, y))

Выход

Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division

Enter your choice: 4
Enter 1st Number: 24
Enter 2nd Number: 4
Answer = 6.0

Метод 3: быстрое исправление с помощью функции лямбда

Хотя этот метод может быть не лучшим с точки зрения сложности кода, однако, он может пригодиться в ситуациях, когда вы хотите использовать функцию один раз, а затем выбросить ее после того, как сдается. Кроме того, этот метод отображает, как длинные кусочки кодов могут быть минимизированы, поэтому этот метод делает достойный вход в список наших предложенных решений.

var = (lambda x, y, c:
       x + y if c == '1' else
       x - y if c == '2' else
       x * y if c == '3' else
       x / y if c == '4' else
       'Invalid Entry!')

# User Menu Prompt
print('''
Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division
''')
# Accept User Entry
option = input("Enter your choice: ")
x = int(input("Enter 1st Number: "))
y = int(input("Enter 2nd Number: "))
print(var(x, y, option))

Выход

Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division

Enter your choice: 4
Enter 1st Number: 500
Enter 2nd Number: 25
20.0

Способ 4: Использование IF-ELIF-ELSE

Иногда всегда лучше следовать за Стандартное программирование Конструкции, потому что они предоставляют нам простейшие решения в большинстве случаев. Используя IF-ELIF – else Не может быть точной заменой для случая коммутатора, но он обеспечивает более простую конструкцию и структуру. Кроме того, это позволяет избежать проблемы KeyError Если соответствующий случай не найден.

Давайте посмотрим на следующий код, чтобы понять, как мы можем использовать условные элементы ELIF-ELIF, чтобы решить нашу проблему:

def func(choice, a, b):
    if choice == '1':
        return a + b
    elif choice == '2':
        return a - b
    elif choice == '3':
        return a * b
    elif choice == '4':
        return a / b
    else:
        return 'Invalid Entry!'


# User Menu Prompt
print('''
Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division
''')
# Accept User Entry
option = input("Enter your choice: ")
x = int(input("Enter 1st Number: "))
y = int(input("Enter 2nd Number: "))
print("Answer = ", func(option, x, y))

Выход

Press 1: Addition
Press 2: Subtraction
Press 3: Multiplication
Press 4: Division

Enter your choice: 1
Enter 1st Number: 500
Enter 2nd Number: 2000
Answer =  2500

Заключение

В этой статье мы обсудили, как мы можем заменить операторы регистра выключателей в нашем коде Python, используя сопоставление словаря Python или путем создания класса или путем применения быстрого исправления с помощью функции Python Lambda. Сказав это, лучший способ реализации коммутаторов в Python – это использовать словарь, который отображает ключ и пары значений.

Я надеюсь, что вам понравилось прочитать эту статью и после прочтения его можно использовать альтернативу для коммутатора в вашем коде с легкостью. Если вы обнаружите эти обсуждения и решения, пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей в будущем!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: