변수 교환하기

파이썬으로 프로그램을 만들다 보니 편리한 기능을 발견했다.

A = B

위와 같이 쓰면 B의 값이 A에 대입된다.

A, B = C, D

위와 같이 쓰면 C의 값이 A에 들어가고 D의 값이 B에 들어간다.

A, B = B, A

위와 같이 쓰면 A와 B의 값이 교환된다.

이걸 응용해서 좌표를 회전시키는 함수를 만들 수 있다.

angle = 10.0

x, y = x*cos(angle)+y*sin(angle), -x*sin(angle)+y*cos(angle)

참 쉽죠?


게시됨

카테고리

작성자

태그:

댓글

“변수 교환하기”에 대한 6개의 응답

  1. 
                  snowall
                  아바타

    아. 그렇군요.

    좋네요 ㅎㅎ

  2. 
                 solariser
                 아바타

    한가지더 해당 기능은 언패킹 이기 때문에 리스트, 튜플에도 동일하게 적용할 수 있습니다.

    a, b, c = [0, 1, 2]

    리스트, 튜플을 리턴하는 함수값에도 동일하게 적용할 수 있습니다.

    _, ext = os.path.splitext(‘a.txt’) # 파일 명을 리턴하지만, 필요없엉~ 하는 것 표현할수 있습니다.

    마지막 응용으로 리스트 슬라이싱에도 적용됩니다.

    li = range(10)

    a, b = li[1:3]

    오오미…

  3. 
                  snowall
                  아바타

    가독성 측면에서 저렇게 썼습니다. 걱정마세요. 🙂

  4. 
                courier
                아바타
    courier

    한번만 등장하더라도 가독성이나 유지보수 측편에서 독립적으로 구현 가능한 부분은 함수화하는게 유리하죠.

  5. 
                  snowall
                  아바타



    근데 프로그램 내용상 어차피 저기서 딱 한번만 등장하기때문에 함수화시키지는 않았습니다.

  6. 
                 그네고치기
                 아바타

    좀더 예쁘게.

    def rorate(x, y, angle):

    ____return x * cos(angle) + y * sin(angle), -x * sin(angle) + y * cos(angle)

    x, y = rorate(x, y, 10)

    밑줄은 들여쓰기 (공백) 입니다.

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.