인프런 커뮤니티 질문&답변
함수 관련으로 질문이 있습니다.
작성
·
180
답변 1
0
안녕하세요. 답변 도우미입니다.
data_result함수는a와b를 인수로 받아서, 두 값을 곱한 결과를print함수를 통해 출력합니다.print(a*b)라인에서a와b의 값 (여기서는 2와 3)을 곱한 결과인 6을 콘솔에 출력합니다.data는data_result함수를 참조하는 새로운 변수입니다. 따라서data(2,3)을 호출하면,data_result(2,3)을 호출하는 것과 동일하고, 이는 결과적으로 6을 출력합니다.이제 여기서 중요한 점은,
print함수가 호출되면, 출력해야 할 내용을 콘솔에 출력한 후에None을 반환한다는 것입니다.data_result함수는 반환값이 명시되어 있지 않으므로, 기본적으로None을 반환합니다.따라서, 외부
print함수인print(data(2,3))는data(2,3)의 반환값을 출력하려고 합니다.data(2,3)은 내부에서 '6'을 출력하고,None을 반환합니다. 그래서 외부print함수는 이None을 받아서 콘솔에 출력하는 것입니다.
Example 68 도 스크린샷에 있는 코드에서 함수 cal은 조건문을 사용해 입력받은 연산자 c에 따라 다른 연산을 수행합니다. 그런데 모든 조건문 안에서 print 함수를 사용하여 결과를 출력하고 있습니다. print 함수는 값을 출력한 다음 None을 반환합니다.
data 변수에 cal(a, b, c)의 결과를 할당하고, 그 다음에 print(data)를 호출하면 cal 함수의 반환값인 None이 출력됩니다. 이는 cal 함수 내에서 어떤 경우에도 return 문을 사용하지 않아서 함수가 명시적으로 값을 반환하지 않기 때문입니다.
결과적으로, 함수가 None을 반환하고, 이것이 data 변수에 할당된 후 출력되는 것입니다.
감사합니다.







