문제 설명
문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.
def solution(binomial):
parts = binomial.split()
a = int(parts[0])
op = parts[1]
b = int(parts[2])
if op == "+":
answer = a + b
elif op == "-":
answer = a - b
elif op == "*":
answer = a * b
return answer
1) 우선 bionomial을 공백을 기준으로 나눈 후에 parts 라는 변수에 넣어준다.
parts = binomial.split()
예를 들어 bionomial이 "41 + 1" 이었을 때, parts 는 ["41", "+", "1"] 이렇게 분리되는 것이다.
2) parts의 0번째를 숫자형으로 바꾸어서 a 에 넣어준다.
a = int(parts[0])
3) parts의 1번째를 op 변수에 넣어준다.
op = parts[1]
즉, 부호에 해당하는 것들(+, -, *) 은 parts의 1번째가 되는 것이다.
4) parts의 2번째를 숫자형으로 바꾸어서 b 에 넣어준다.
b= int([parts[2])
5) 마지막으로, 각각 부호에 해당할 때, 알맞는 연산을 할 수 있는 조건문을 작성한다.
if op == "+":
answer = a + b
elif op == "-":
answer = a - b
elif op == "*":
answer = a * b
+) 추가적으로 예기치 않은 연산자가 주어졌을 때 예외처리도 가능하다.
else:
raise ValueError("Invalid operator")