파이썬/파이썬(python) 초급

[10-6 파이썬] 계산기 만들기 1단계(딕셔너리에 함수 넣기)

Olivia-BlackCherry 2022. 8. 19. 14:10

딕셔너리는 키와 벨류 값으로 이루어져있다.

벨류값으로, 

함수를 넣을 수 있을까?

 

오늘은

딕셔너리 안에 함수를 넣는 방법을 생각해보자. 

 

혹시

딕셔너리에 대한 기본기가 필요하신 분은 

아래의 게시글을 확인하면 된다. 

https://olivia-blackcherry.tistory.com/75

 

[9-1 파이썬] 딕셔너리, name error, key error, key, value, 반복문, items(), 공딕셔너리, 딕셔너리 지우기,

1. 딕셔너리 dictionary 뜻 파이썬에서 딕셔너리는 우리가 아는 사전(국어사전, 영어사전 등)과 그 사용법과 생김새가 같다. 사전을 펼쳐보면 단어가 나오고, 그 정의가 설명된다. 단어 정의 dictionary

olivia-blackcherry.tistory.com

 

 

오늘은 딕셔너리 심화로, 

딕셔너리 안에 함수를 넣는 방법을 알고

이 개념을 응용하여 계산기를 만들 것이다.

 

우선,

 

아래의 코드를 실행해보자. 

이 코드 역시 계산기를 만드는 코드이지만,

 

딕셔너리를 사용하지 않고

if, elif, else 구문을 반복해 코드를 작성했다. 

 

실행 결과는 같지만, 

코드가 왠지 복잡해보이고,

단순한 과정이 나열된 것처럼 보여

효율성이 떨어져 보인다.

 

아래의 재생버튼 ▶을 눌러서 실행해보세요 

 

 

지금부터

딕셔너리 안에 함수를 넣는 것을 배워 

위의 코드를 수정해보자.

 

먼저 딕셔너리 안에 넣을 함수를 정의해주자.

덧셈 add
뺄셈 subtract
곱셈 multiply
나눗셈 divide

네 개의 함수를 만들었다. 

각 함수에는 return 값이 있다.

def add(n1, n2):
  return n1 + n2

def subtract(n1, n2):
  return n1 - n2

def multiply(n1, n2):
  return n1 * n2

def divide(n1, n2):
  return n1 / n2

 

 

이제 딕셔너리를 만들 것이다. 

키 값으로는 +. -. *, / 을 두었고

벨류 값으로 위의 함수 이름을 적었다.

operations = {
    "+": add,
    "-": subtract,
    "*": multiply,
    "/": divide
}

 

 

이제부터는

함수와 딕셔너리를 어떻게 활용할지를 보자.

 

먼저, 

새로운 변수 3개를 만든다. 

n1, n2 는 함수에 넣을 입력값이다.

n1= int(input("계산하고자 하는 숫자를 입력하세요"))
n2 = int(input("계산하고자 하는 숫자를 입력하세요"))

pick_operations는 위의 operations 딕셔너리에서 골라낼 key값이다.

pick_operations = input(" +,-,*, / 골라주세요")

 

위의 변수를 이용해서

for문을 만들어 결과를 확인해보자.

 

그 다음,

calculator(계산기)라는 새로운 함수를 정의했다. 

def calculator(n1, n2, pick_operations):
  function = operations[pick_operations]
  answer = function(n1, n2)
  return answer

operations["+"]의 value 값은 add함수가 된다. 

function = operations[pick_operations] 이므로

function = add 가 된다.

 

answer = function(n1, n2)이므로

answer= add(n1, n2) 가 되고,

 

만약 사용자가 n1: 2, n2: 3를 입력한다면

add(1,3)는 4를 return하므로,

answer= 4가 되며

 

결과적으로 calculator는 4 값을 반환한다. 

 

 

 

이제 위의 과정을 응용하여

계산기를 만들어보자.

만드는 규칙은 다음과 같다.

계산기 만들기
1. 계산하고자하는 숫자 입력 + (덧셈, 곱셈, 나눗셈, 뺄셈) 입력 + 두 번째 숫자 입력하기
2. 계산 계속 이어나갈지 묻기.
3. 계산 이어나가거나, 종료하기

아래의 재생버튼 ▶을 눌러서 실행해보세요 

 

 

<응용>

아래 코드는 우의 함수와 미세한 차이가 있다. 

위의 코드에서는 calculator 함수에 parameter를 두고, 

단순히 계산하는 기능만 했다면, 

 

이번에는

calculator 함수에 parameter는 없고,

모든 실행 코드를 이 안에 모두 넣으므로써

코드를 더욱 간결화했다.

아래의 재생버튼 ▶을 눌러서 실행해보세요