본문 바로가기

Python/왕초보를 위한 파이썬50

3.4. 축약함수(Lambda) 오늘은 람다 형식과 그것을 이용하는 여러가지 함수들에 대해서 알아보겠습니다. 당장 완벽하게 소화하실 필요는 없을 것 같구요, 가벼운 마음으로 이런 것이 있다는 정도만 아셔도 되지 않을까 합니다. 람다 형식은 인공지능 분야나 AutoCAD라는 설계 프로그램에서 쓰이는 Lisp 언어에서 물려받았다고 하는데요, 함수를 딱 한 줄만으로 만들게 해주는 기똥찬 방법입니다. 사용할 때는 아래와 같이 써주면 되지요. lambda 인자 : 표현식 다음은 두 수를 더하는 함수입니다. >>> def hap(x, y): ... return x + y ... >>> hap(10,20) 30 이것을 람다 형식으로는 어떻게 표현할까요? >>> (lambda x,y: x+y)(10, 20) 30 너무나 간단하죠? 함수가 이름조차도 .. 2012. 4. 3.
3.3. 값을 돌려주기 여러분, 함수가 무엇일까요? 지금까지 머리 아프게 함수를 공부했는데 또 무슨 소리냐구요? 물론 함수에 대해 계속 배워왔지만, 결정적으로 빠진 내용이 하나 있습니다. 사실은 우리가 초등학교 때부터 배워왔던 것이기도 하구요. 과연 그것이 무엇일까요? 이 그림 낯익으시죠? 함수에 x를 집어 넣으면 함수가 주물럭주물럭 계산해서 y라는 값을 돌려주는 그림입니다. 함수에 값을 넣으면 함수는 계산된 값을 돌려준다. 이것이 바로 함수의 핵심이지요. 프로그래밍에서도 마찬가지입니다. 지금까지 우리가 만든 함수들은 일은 열심히 하지만 돌려주는 것은 없었지요. 그렇다면 이젠 일도 하고 결과를 돌려주기도 하는 함수를 만들어 봐야겠죠? >>> def function(x): ... a = 3 ... b = 5 ... y = a*x.. 2012. 4. 3.
3.2. 지역변수, 전역변수 오늘도 함수에 관한 이야기랍니다. 제목엔 변수라고 나와있지만요. 먼저 예제를 보실까요? 학교 다닐 때, 저희 학교 짱은 영구였습니다. 제가 전학가기 전까지는… >>> jjang = '09' 제가 가서 바로 짱 먹었지요. 흐흐흐… >>> jjang = 'pig dad' 애들한테 물어보면 누가 짱이라고 할까요? 당근… >>> jjang 'pig dad' 그런데 자기네 반에서 짱이라고 깝죽거리는 녀석이 있었으니, 바로 땡칠이라는 친구였답니다. 반이라는 함수를 만들어 보죠. >>> def ban(): ... jjang = '07' ... print 'jjang =', jjang ... >>> ban() jjang = 07 그러나… 땡칠이도 제 앞에선 깨갱~이랍니다. 울 학교 짱은 변함 없이 저걸랑요… >>> j.. 2012. 4. 3.
3.1. 함수 지금까지는 코드를 한 줄, 한 줄 입력해서 결과를 보긴 했지만, 컴퓨터에게 일을 시키는 건지, 우리가 일을 하는 건지 헷갈릴 정도로 귀찮으셨을 거예요. 오늘 배우실 함수를 아시고 나면 프로그래밍이 좀 더 즐거워지지 않을까 싶네요. 그럼 시작해볼까요? [1, 2, 3, 4, 5]라는 리스트가 있다고 해볼게요. 이 리스트에는 원소가 몇 개 있을까요? 예, 5개입니다. 이번엔 [3, 4, 62, 27, 83, 956, 26, 58, 3, 78, 168, 64, 78, 8, 4, 6, 75, 81, 69]이라는 리스트가 있다고 칩시다. 에구구… 원소가 넘 많으니까 a_list라는 변수에 넣어두도록 하죠. >>> a_list = [3, 4, 62, 27, 83, 956, 26, 58, 3, 78, 168, 64,.. 2012. 4. 3.