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

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)

참 쉽죠?

신고
by snowall 2011.07.29 00:43
  • 그네고치기 2011.07.29 13:54 신고 ADDR EDIT/DEL REPLY

    좀더 예쁘게.

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

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

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

    • snowall 2011.07.29 17:52 신고 EDIT/DEL


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

  • courier 2011.09.20 14:17 신고 ADDR EDIT/DEL REPLY

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

    • snowall 2011.09.20 15:34 신고 EDIT/DEL

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

  • solariser 2011.12.05 12:33 신고 ADDR EDIT/DEL REPLY

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

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

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

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

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

    li = range(10)
    a, b = li[1:3]

    오오미...