본문 바로가기
[ Python ]/- 파이썬 문법공부

파이썬 16장(함수_2, 전역변수, 지역변수, global, 재귀함수, 함수호출)

by MRG 2020. 11. 3.
728x90
반응형
728x90

▣ 안녕하세요 ^^ 
이번장에서는 저번장에 이어서 함 수두 번째 시간으로 공부해보겠습니다.


▣ 먼저 재귀함수에 대해 공부해보겠습니다.
재귀 함수란 쉽게 이야기하면 함수가 자기 자신을 불러오는 호출 하는 걸 재귀 함수라고 합니다. 
간단한 코드를 실습하면서 공부해보겠습니다.

 

▣ 이번장부터는 비주얼 스튜디오 코드로 코딩을 작성했습니다.
이점 참고해주세요. 
그럼 코드를 작성했다면 이제 하나하나 해석해보겠습니다.
먼저 def으로 sum이라는 함수에 이름을 정의하고 매개변수로 숫자를 받아오겠습니다.
그리고 그 숫자에 1을 더하겠습니다. 
그런 다음에 if 조건문으로 만약 num에 변수에 값이 10보다 크면 return 해서 
함수를 끝내도록 코드를 작성해주시고요.
그리고 아니면 그 밑에 sum(num) 자기 자신을 호출해주고 
현재 지역변수인 num을 매개변수로 전달해주겠습니다.
그럼 이렇게 1부터 11까지 호출하고 함수가 끝나는 걸 확인할 수 있습니다.


▣ 다시말해 이런 식으로 함수가 자기 자신을 호출하는 걸 재귀 함수라고 합니다.
보통 이 재귀함수를 설명할 테 팩토리얼 구하기를 많이 이용해서 설명하는데
저는 그것보다 좀더 쉽게 이해를 돕기 위해서 이렇게 코드를 작성했으니
이점 참고해주시면 감사하겠습니다. 


▣ 이번에는 전역변수와 지역변수에 대해서 알아보겠습니다.
제가 저번장에서 한번 언급은 했지만 우선 지역 변수라 고하면 

 

▣ 쉽게 이야기하면 이렇게 함수내부에서만 사용 가능한 변수를 이야기합니다.
함수 외부에 있는 변수는 전역변수이고 
함수 내부에 있는 변수는 지역변수입니다.
지역변수는 함수가 끝나면 메모리에서 사라지게 됩니다.
그래서 전역변수 num이랑 이름이 같게 하고 +10을 해도
이렇게 num안에 10에 값이 변하지 않는걸 볼 수 있습니다.


▣ 다시 이야기하면 전역변수와 지역변수가 이름이 같다면 함수내부에서에 
변수에 우선순위는 지역변수이기 때문에 
전역변수에 값에는 영향을 주지 않고 함수가 끝나면 사라지는 겁니다.
그럼 함수안에서 어떻게 전역 변수에 접근할 수 있을까요?

 

▣ 파이썬에서는 이렇게 global 키워드를 앞에 붙이고 변수를 선언하면 
전역 변수에 접근하게 됩니다.
그리고 함수를 호출하면 이렇게 값이 30이 되는 걸 확인할 수 있고,
함수 안에서 다른 함수를 호출하는 것도 확인할 수 있습니다.


▣ 하지만 전역변수를 사용할 때 주의해야 합니다. 
위에서 언급한것처럼 전역 변수와 지역변수가 이름이 같다면 
전역 변수를 먼저 우선순위로 접근하기 때문에 
가독성에서도 혼란을 줄 수가 있습니다.
그러니 전역변수를 사용할 때와 매개변수, 지역변수를 구분해서 사용할 때를 구분해야 합니다. 
이건 제가 계속 실습을 진행하면서 이야기하도록 하겠습니다.
우선 여기까지 해보셨다면 여러분들에 방법으로 꼭 재귀함수, 함수에서 함수 호출, 지역변수, 전역 변수 
모두 사용해보고 이해해보는 시간을 가지시면 좋을꺼 같습니다. 


▣ 자 오늘은 이렇게 함수 두번째 시간으로 함께 공부해보았습니다.
저에 블러그에 목적은 여러분들이 좀 더 쉽게 코딩을 접근하고 스스로 공부할 수 있게
그리고 함께 공부하는 걸 나누는 게 목적입니다.
이점 참고해주시고,
공부하시다가 깨달으신 거 나눠주시고 
궁금하신 내용들 댓글로 남겨주세요^^ 
그럼 다음장에서 뵙겠습니다. 



▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!! 

728x90
반응형

댓글