본문 바로가기
IT 이것저것/파이썬python

파이썬python 패킹packing과 언패킹unpacking!

by KaNonx카논 2017. 5. 24.
반응형

파이썬python 패킹packing과 언패킹unpacking!

 

요번에는 파이썬의 패킹과 언패킹에 대해 알아보도록 하겠습니다.

 

전의 파이썬 함수에 대해 알아보려고 한다면 아래 게시글로!

 

2017/05/17 - 파이썬python 함수란 무엇인가 ~ 반복 코드 짜기

 

 

패킹이라고 하는건

 

 

 x = 1, 2라고 파이썬에 적었을때

 

파이썬은 튜플에 (1, 2)로 담는 것을 패킹

 

이라고 합니다.

 

말 그대로 1과 2라는 요소를 한데 묶어주는 효과를 얻을 수 있는 것이죠!

 

그렇다면 언패킹이란 뭘까요?!

 

 

 y, z = x 라 적으면

 

y는 1, z는 2의 값을 갖게 되는데 이것이 언패킹


 

 

그렇습니다.

 

아까 x가 (1, 2)의 값을 가지게 만들게 패킹을 했었지요?

 

그걸 우변에다가 y와 z의 값을 다시 주게되면

 

y = 1, z = 2가 되면서 x가 언패킹 되어버리는 것이죠~!

 

 

 

그리고 더 나아가서 보통은 임시 변수 temp

 

 두 곳의 변수의 값을 바꾸기 위해

 

이것을 매개체로 두 변수의 값을 바꿉니다만, 파이썬에서는 그럴 필요가 없습니다.

 

 

y, x = x, y

 

라는 단순명료한 명령문만으로도 두 변수의 값을 뒤바꿀 수 있습니다~

 

아 물론 자바나 C언어에서는 오류가 나니 주의합시다~!

 

 

 우변이 튜플로 묶여 (1,2)가 되고

 

좌변의 y, x는 언 패킹이 되어 y = 1, x = 2의 값이 되는 것이지요 ~

 


그렇다면 여기서 응용을 해 볼까요?!

 


def circle_area_circumference(radius, pi):
    area = pi* (radius**2)
    circumference = 2 * pi * radius
    return area, circumference

 

if __name__=="__main__":
    result = circle_area_circumference(3, 3.14)
    print("반지름: ", 3, "면적과 둘레: ", result)
    res1, res2 = circle_area_circumference(3, 3.14)
    print("반지름:", 3, "면적 : ", res1, "둘레: ", res2)

 

 

 

 

-

반응형

댓글