
(본 글은 수학의 즐거움 직문수 4강을 참고하여 작성한 것입니다.) 아래와 같은 함수 f:A→B가 있다. 함수가 갖춰야 할 조건을 모두 갖췄으므로 분명히 함수가 맞다. f:A→B의 역함수 g:B→A는 아래 조건을 만족해야 한다. g∘f=idA f∘g=idB idA와 idB는 각각 A에서 A로 가는 항등함수, B에서 B로 가는 항등함수를 말한다. 합성 함수의 결과가 항등함수가 되어야 한다고 하니, 그냥 심플하게 뒤집어서 붙여보자. 아차, g가 함수가 아니다. g가 함수이려면 어떻게 해야 할까? 우선 2와 3이 모두 b를 가리..

본 글의 코드는 여기에서 보실 수 있습니다. Q. 0부터 99까지 정수의 제곱수로 구성된 리스트를 생성하시오. A. 방법은 여러 가지가 있다. 우선 range 객체와 함수를 하나 만들어놓고 시작한다. def sq(x): return x**2 r = range(100) 처음 배우는 방법은 아래와 같이 리스트에 append를 하는 방식이다. # 쌩 for문 사용 l = [] for i in r: l.append(i**2) 리스트 컴프리헨션을 사용하면 훨씬 간단해진다. # list comprehension l = [i**2 for i in r] 만들어둔 함수 sq를 쓸 수도 있다. # 직접 연산 대신 함수 사용 l = [sq(i) for i in r] map은 이터러블의 각 요소에 함수를 적용시킬 수 있다. ..

한줄요약: 함수명 뒤에 괄호를 쓰고 1초만 기다려보자. 자주 쓰는 함수가 아니면 사용법이 생각나지 않을 때가 있습니다. 사실 자주 쓰는 함수도 종종 헷갈립니다. 예를 들어... - interp1의 인자를 어떤 순서로 쓰더라? method가 먼저던가, extrapolation이 먼저던가? - polyfit에 인자가 몇 개 들어가지? - randi에 max 값이 먼저였나? 아니면 행렬 크기가 먼저였나? 이럴 때 쓰는 방법이 몇 가지 있습니다. 가장 확실한 방법은 명령 창에 아래처럼 쓰는 것입니다. >> doc randi 도움말 창이 뜨면서 randi 사용법 문서를 볼 수 있습니다. 이 정도까지는 필요없고 간단히 사용법만 보고 싶다면 명령 창에 아래처럼 쓰면 됩니다. >> help randi 이보다 더 빠른 ..

원문: Top 5 Mistakes You Make When Declaring Functions in Python (약간의 의역을 얹었습니다.) 어떤 프로그래밍 프로젝트에서든 함수는 핵심요소입니다. 잘 만들어진 함수는 코드의 가독성을 높이고 유지보수를 쉽게 만듭니다. 반대로 함수를 엉성하게 만들면 가독성이 떨어지고 유지보수 비용이 올라갑니다. 아무리 실력좋은 프로그래머라도 시간이 지나면 자신의 코드를 잊어버리기 마련이므로, 잘 작성된 함수는 프로젝트의 가치를 올려준다고 할 수 있습니다. 물론 파이썬도 예외가 아닙니다. 함수 작성 시 흔히 범하는 실수를 소개하겠습니다. 이 실수들을 이해하고 나면 가독성과 유지보수 면에서 향상된 코드를 짤 수 있을 것입니다. "가독성은 중요하다." - 파이썬 철학 (역자 주:..