본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[파이썬 (Python)] If/Else: 파이썬 제어 흐름의 새로운 접근법 🐍✨

by 데이터 벌집 2025. 1. 25.
반응형

[파이썬 (Python)] If/Else: 파이썬 제어 흐름의 새로운 접근법 🐍✨

 

파이썬에서 if/else 없이 계산기를 만들어보자! 🐍✨

안녕하세요! 이번에는 파이썬의 독창적인 기능들을 활용해 if/else 없이 제어 흐름을 처리하는 다양한 방법을 소개합니다. 이번 예제에서는 간단한 계산기를 만들어볼 거예요. 🎉


1️⃣ 중첩된 함수 활용하기

함수 안에 함수를 정의하여 연산을 처리할 수 있습니다!

💻 코드 예제

def calculator(a, b, operation):
    def add(): return a + b
    def subtract(): return a - b
    def multiply(): return a * b
    def divide(): return a / b if b != 0 else "Cannot divide by zero"

    operations = {
        '+': add,
        '-': subtract,
        '*': multiply,
        '/': divide
    }
    return operations.get(operation, lambda: "Invalid operation")()
    
print(calculator(10, 5, '+'))  # 출력: 15
print(calculator(10, 0, '/'))  # 출력: Cannot divide by zero
print(calculator(10, 5, '%'))  # 출력: Invalid operation

🌟 장점

  • 연산 함수들이 계산기 내부에 캡슐화되어 있습니다.
  • 간결한 딕셔너리 접근으로 중복 코드를 피할 수 있습니다.

2️⃣ 리스트 인덱스와 함수 활용

리스트 인덱스를 통해 조건 없이 동작을 처리할 수도 있습니다.

💻 코드 예제

def calculator(a, b, operation):
    functions = [
        lambda: a + b,  # '+' 연산
        lambda: a - b,  # '-' 연산
        lambda: a * b,  # '*' 연산
        lambda: a / b if b != 0 else "Cannot divide by zero"  # '/' 연산
    ]
    operations = ['+', '-', '*', '/']
    
    try:
        return functions[operations.index(operation)]()
    except ValueError:
        return "Invalid operation"
    
print(calculator(10, 5, '+'))  # 출력: 15
print(calculator(10, 5, '/'))  # 출력: 2.0
print(calculator(10, 5, '%'))  # 출력: Invalid operation

🌟 장점

  • 조건문 없이 리스트와 인덱스만으로 동작을 제어할 수 있습니다.
  • ValueError 예외 처리를 통해 잘못된 연산도 간단히 처리 가능합니다.

3️⃣ 클래스와 매서드 활용하기

객체 지향 방식을 사용하여 연산 처리를 캡슐화할 수 있습니다.

💻 코드 예제

 
class Calculator:
    def __init__(self, a, b):
        self.a = a
        self.b = b
        self.operations = {
            '+': self.add,
            '-': self.subtract,
            '*': self.multiply,
            '/': self.divide
        }

    def add(self): return self.a + self.b
    def subtract(self): return self.a - self.b
    def multiply(self): return self.a * self.b
    def divide(self): return self.a / self.b if self.b != 0 else "Cannot divide by zero"

    def calculate(self, operation):
        return self.operations.get(operation, lambda: "Invalid operation")()

calc = Calculator(10, 5)
print(calc.calculate('+'))  # 출력: 15
print(calc.calculate('/'))  # 출력: 2.0
print(calc.calculate('%'))  # 출력: Invalid operation

🌟 장점

  • 재사용 가능한 클래스를 작성할 수 있습니다.
  • 확장성 있는 구조로 새로운 연산 추가가 쉽습니다.

4️⃣ NumPy 활용하기

NumPy는 수학 연산 처리를 위한 강력한 라이브러리입니다.

💻 코드 예제

import numpy as np

def calculator(a, b, operation):
    operations = {
        '+': np.add,
        '-': np.subtract,
        '*': np.multiply,
        '/': np.divide
    }
    if operation not in operations:
        return "Invalid operation"
    if operation == '/' and b == 0:
        return "Cannot divide by zero"
    return operations[operation](a, b)

print(calculator(10, 5, '+'))  # 출력: 15
print(calculator(10, 5, '/'))  # 출력: 2.0
print(calculator(10, 0, '/'))  # 출력: Cannot divide by zero
print(calculator(10, 5, '%'))  # 출력: Invalid operation
 

🌟 장점

  • 대규모 데이터 처리와 연산에 유용합니다.
  • NumPy 함수들을 활용하여 성능이 우수합니다.

결론

if/else 없이 제어 흐름을 처리하는 다양한 방법을 배워보았습니다! 🧑‍💻

  • 중첩된 함수: 간단하고 읽기 쉽습니다.
  • 리스트와 인덱스: 조건 없이 처리 가능.
  • 클래스: 재사용성과 확장성 확보.
  • NumPy: 고성능 연산 지원.
반응형