인프런 커뮤니티 질문&답변

awawss1님의 프로필 이미지
awawss1

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

함수 관련으로 질문이 있습니다.

작성

·

128

0

안녕하세요, 함수 문제를 풀어보다가, 문의사항이 있어서 질문 올립니다.

67, 68번 예시와 다르게 노출되어, 원인이 무엇인 지 알고 싶습니다.

 

Excercise 67. 함수 문제를 아래 방식으로 풀어봤는데, 결과 값에 'None' 값도 같이 출력되는지 알고 싶습니다.

 

 

Excercise 68. 역시 풀어보다가, 똑같이 'None' 값이 나와서 이유를 알고 싶습니다!

 

감사합니다.

 

답변 1

0

안녕하세요. 답변 도우미입니다.

  1. data_result 함수는 ab를 인수로 받아서, 두 값을 곱한 결과를 print 함수를 통해 출력합니다. print(a*b) 라인에서 ab의 값 (여기서는 2와 3)을 곱한 결과인 6을 콘솔에 출력합니다.

  2. datadata_result 함수를 참조하는 새로운 변수입니다. 따라서 data(2,3)을 호출하면, data_result(2,3)을 호출하는 것과 동일하고, 이는 결과적으로 6을 출력합니다.

  3. 이제 여기서 중요한 점은, print 함수가 호출되면, 출력해야 할 내용을 콘솔에 출력한 후에 None을 반환한다는 것입니다. data_result 함수는 반환값이 명시되어 있지 않으므로, 기본적으로 None을 반환합니다.

  4. 따라서, 외부 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 변수에 할당된 후 출력되는 것입니다.

감사합니다.

awawss1님의 프로필 이미지
awawss1

작성한 질문수

질문하기