-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
중첩함수 질문입니다.
21.03.23 07:56 작성 조회수 117
2
안녕하세요.
def nested_func(num):
def func_in_func(num):
print(num)
print("In func")
func_in_func(num + 100)
nested_func(100)
수업 예제 코드에서
print(num)이 있는데, num은 문자라서 print가 안 되긴 하는 것 같은데, 저 코드가 꼭 들어가야 하는 이유가 무엇인가요?
코드 논리 흐름이 좀.. 잘 이해가 안 되네요..
논리 흐름좀 짚어서 설명해주시면 감사하겠습니다!
답변을 작성해보세요.
3
haon
2021.03.23
def nested_func(num): #2
def func_in_func(num): #5
print(num) #6
print("In func") #3
func_in_func(num + 100) #4
nested_func(100) #1
안녕하세요!
순서가 복잡하니까 일단 코드안에 순서를 적어뒀습니다.
#2의 nested_func함수는 불리지않았으니까 실행이안돼죠?
그 안의 코드를 모두넘어서 밖에있는 #1코드가 먼저실행됍니다.
#1.nested_func(100)로 함수를 호출하면 #2.def nested_func(num)이 실행됩니다.
현재num은 100입니다.
그 안의 #4도 역시 호출이 되지않아서 넘어갑니다.
이제#3.print("In func")가 실행되서 출력됩니다.
다음은 #4.func_in_func(num + 100)인데 아직 num은 100이였죠?
그래서 #4.func_in_func(100 + 100)로 호출이됩니다.
#5.func_in_func(num)여기서 문제가 있습니다.
현재 num은 몇일까요? 정답[200]입니다.
마지막에 #6.print(num)은 200이 출력됩니다.
2
2
답변 3