인공지능기초/파이썬

function w. code

유니진 2023. 1. 19. 17:44

 

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 정리

 

4가지 함수 형태 정리

 

                                      완전한 함수의 경우 

                                   마지막 d_calculateRectangleArea (x,y) 함수 처럼 

                                   parameter 와 return 값 둘다 존재하는 경우가 많다.