22.10.11 - 사이드

LaMelo·2022년 10월 11일
0

jupyter

목록 보기
13/29
post-thumbnail

함수

  • 여러 수행 조건의 명령을 단순화 하기 위해 명령모음을 변수화 하는 것.

함수의 매커니즘

  • 반복문은 탈출 전까지 흐름대로 이동
  • 함수는 호출될 때마다 해당 조건으로 이동하여 실행 후 돌아옴

1. 완전한 실행문의 작업

  • def 힙에 저장 -> 디귿춤 함수 출력 요청 ->
    스텍에 디귿춤 지역 생성 but 내부에 아무것도 없음 ->
    힙에서 디귿춤에 관한 함수 출력 ->
    프린트 명령 수행 -> 스택 상 디귿춤 지역 삭제

2. 불완전한 실행문의 작업

  • 위 코드를 실행 시 print(a+1)의 출력 값인 6은 출력이 되지만print(plus(a))의 결과가 None인 이유 : 1번에서 2번 프린트 실행 -> 출력값 6 출력 이후 plus2함수를 힙에 저장 후 print들을 수행. 그러나 plus1 함수에서는 return구문이 존재하지 않기 때문에 print(plus(5))를 수행 시 plus(5)가 출력할 값이 없는 상태이다.(이러한 상태를 void 상태라고 하는데 파이썬에는 void가 없다.) 그렇기 때문에 void와 같은 의미로 None을 출력하게 되는 것이다.
  • 위 함수의 수행 순서(앞의 숫자는 파이썬 튜터상 코드 번호)
- 1.def plus1 힙에 저장
 - 2.구문상 존재하는 print 구문 실행 -> 6 출력
 - 4.def plus2 힙에 저장 (print 구문이 없고 리턴 구문만 존재하므로 다음으로 진행)
 - 7.print 구문 스택에서 a 에 대입값 저장 -> a = 5
 - 1.힙에 저장된 def에 a 값을 도출 but return 구문이 없어서 None 값 도출
 - 7. None 출력 (스택상 plus(a) 구문 자동 삭제)
 - 8. first func 출력
 - 9. plus2(5)를 출력하라는 명령 실행 ->4.def plus2(5) 실행 출력값은 6 구문 상 return 구문이 존재
 - 9. print(6) -> 6 도출 : plus2(5)가 6이라는 결과값을 print 명령에 리턴하라는 리턴 구문이 존재하므로 값 도출
              (스택상 plus2(a) 구문 자동 삭제) 
 - 10. second func 출력 
 - 작업 종료
 
 
 
참고: 스네이크 케이스 : 단어와 단어 사이를 언더바로 연결하는 경우 ex> sum_func()
profile
가즈아~

0개의 댓글