function w. code
1. 사각형 넓이를 구하는 함수
제일 위에는 사용할 함수를 만들어주는 게 좋다.
이번에 풀 예제는 "사각형의 넓이 구하기" 였기 때문에
함수 이름을 calculate_rectangle_are 라고 definition 정의해주었고
이 함수에서 사용할 parameter 는 입력 값을 의미하는데
여기서는 사각형의 가로 = x, 세로 = y 로 총 2개로 만들어주었다.
그 다음으로 메인 함수
함수 블록이 끝났으므로 x, y 를 대신할
새 parameter 인 rectangle_x 와 rectangle_y 를 만들어주었다.
그리고 이 문제는 x = 10, y = 2 로 이미 정해주었고
(직접 입력받아서 돌아가는 프로그램도 추후에 생각해볼 예정이다.)
print 함수를 이용해 각각의 가로, 세로 길이가 출력되게 한다음
최종적으로 사각형 넓이가 출력되도록 하였다.
이 때는, print 안에서 넓이를 구하는 함수 (= calculate_rectangle_are) 를 호출한 다음,
각각의 parameter 자리에 rectangle_x, y 를 집어넣어주어
원하는 결과가 나오도록 해주면 끝!
이게 딱 목표한 함수를 최대한 심플하게 만들고
각 parameter 랑 값들이 이동이동해가는 걸 놓치지 않는 게 중요한 것 같다.
(왜냐면 내가 그걸 잘 놓쳐서...)
2. 수학의 함수와 비슷한 프로그래밍의 함수 임을 이용한 예제
다음의 공식을 파이썬으로 작성하기ㅣ
: f(x) = 2x + 7
g(x) = x * x
x = 2 일 때 f(x) + g(x) + f(g(x)) + g(f(x)) 의 값은?
출력 값으로 151이 나오도록 한다
내가 처음에 문제만 보고 해설을 안보고 풀었을 때의 상황.
매우 조잡하고 길고 난리다...
이 과정에서 내가 놓쳤던 부분과 주의해야 할 부부은 #주석 을 통해 설명해두었다.
그리고 이건 강의에서 해설해준 코드!
느낀 점은 내가 무시하거나 반복해도 되는 부분과
그럴 수 없는 부분의 경계를 빨리 파악하고
손에 익도록 해야겠다.
3. 4가지 형태의 함수가 존재
parameter 가 필요하거나 안필요하거나
리턴값이 필요하거나 안필요하거나
의 기준으로 크게 4가지의 함수형태가 존재하는데
만드는 프로그램에 따라서 적당한 함수를 사용해주면 된다.
3-1. return 값을 포함시킨 경우
3-2. 리스트로 본 sorted 함수와 .sort( ) 함수
즉, sorted 함수 : 잠깐 복사해서 리턴해주고 끝나서 변화는 없음
.sort( ) 함수 : 리턴을 해주는 게 아니라 sorting 한 결과가 그대로 전달 전달 (변화 있는 상태로)
3-3. 실수
애초에 return print 가 그냥 문자 자체로 엄청 어색해보여서 생각지도 못했는데
리턴 값 있고 없음의 중요성을 강조하기 위해서 추가!
이런걸 지금 배우면서 몇년전에 c언어로 프로젝트 했을 때
나는 값을 맞게 전달하고 맞는 변수랑 인자를 적었는데
왜 출력이 안되는 거야...!?
의 의문이 풀렸다... ㅎ
물론 저런 실수를 하진 않았겠지만 분명 리턴값, parameter 값 이런 걸로 혼란스러운 코드 작성을
보란듯이 해놨겠지... (교수님 죄송해요...)
4. function type 정리
완전한 함수의 경우
마지막 d_calculateRectangleArea (x,y) 함수 처럼
parameter 와 return 값 둘다 존재하는 경우가 많다.