파이썬 return 출력 - paisseon return chullyeog

개발/python

[python] print와 return의 차이점

유다110 2017. 10. 27. 11:19

print와 return은 모두 function이 아닌 statement다.

뭐 이건 제쳐두고,

print와 return의 가장 큰 차이점은 함수 및 프로그램에 영향을 주느냐 마느냐이다.

print는,

그저 값을 출력할 뿐, 컴퓨터가 이 값을 가지고 무얼 하진 못한다.

변수가 어떤 값을 가지는지 사용자 측에서 편하게 보기 위함이지 함수에는 전혀 영향을 끼치지 않는다.

return은,

함수가 값을 반환하는 가장 주된 방법이다.

모든 함수는 어떠한 값을 return하며, 이 return(혹은 yield)이 명시되어 있지 않은 경우에는 None을 return한다.

이 반환된 값은 다른 함수에서 사용될 수 있으며 변수에 저장될 수도 있다.

def function_that_prints():
    print("I printed")

def function_that_returns():
    return "I returned"
	
f1 = function_that_prints()
f2 = function_that_returns()
print("Now let us see what the values of f1 and f2 are")
print(f1)
print(f2)

출력결과

"I printed"
"Lets see what the values of f1 and f2 are"    
None
"I returned"

출처: https://www.codecademy.com/ko/forum_questions/518ffbfeb3f05c44fe001395

파이썬 return vs. print 차이

return vs. print

많은 분들이 return문과 print문을 헷갈려합니다. 한번 비교해보겠습니다.

사례 1

def print_square(x): print(x * x) def get_square(x): return x * x print_square(3) print("--") get_square(3) print("--") print(get_square(3)) print("--") print(print_square(3)) 9 -- -- 9 -- 9 None


print_square 함수는 파라미터의 제곱을 출력해줍니다. 리턴값이 지정되어있지 않으므로, 이 함수의 리턴값은 None입니다.
반면 get_square 함수는 파라미터의 제곱을 리턴시켜줍니다. 출력값은 없습니다.

1. print_square(3)이라는 코드를 실행하면 print(x * x)에 의해 9라는 값이 출력됩니다.2. get_square(3)은 return문에 의해 9라는 값으로 대체됩니다. 그러나 대체된 값을 출력하라는 명령이 없기 때문에, 아무것도 출력되지 않습니다.3. print(get_square(3))는 get_square(3) 함수의 return문에 의해 대체된 값을 출력하는 명령입니다. 9가 리턴되므로, 9가 출력됩니다.4. print(print_square(3))의 경우 우선 print_square 함수에 있는 print(x * x)에 의해 9가 출력됩니다. 그리고 함수 호출 부분은 함수의 리턴값으로 대체되는데, print_square 함수의 리턴값은 None입니다. 따라서 None도 함께 출력됩니다.

사례 2

1. def secret_number(): 2. print("우리의 비밀 번호는: ") 3. return 486 4. 5. print(secret_number()) 우리의 비밀 번호는: 486

1. 파이썬은 (1)~(3)번 줄의 함수 정의를 건너뛰고, (5)번 줄에 도착합니다.2. (5)번 줄에서 secret_number()라는 함수 호출 때문에, 파이썬은 secret_number 함수가 정의되어 있는 (1)번 줄로 이동합니다.3. (2)번 줄의 print 명령에 따라 파이썬은 "우리의 비밀 번호는: "을 출력합니다.4. 486을 리턴하라는 명령이 있기 때문에 함수의 실행이 중단되고, 함수를 호출한 secret_number()라는 부분이 486으로 대체됩니다.

(5)번 줄의 print(secret_number())는 print(486)과 동일해져서 486이 출력됩니다.

사례 3

만일 위 코드에서 (5)번 줄이 print(secret_number())가 아닌, secret_number()였으면 어땠을까요?

1. def secret_number(): 2. print("우리의 비밀 번호는: ") 3. return 486 4. 5. secret_number() 우리의 비밀 번호는:


 "우리의 비밀 번호는: "만 출력되고, 486은 출력되지 않은 것일까요?486을 리턴하라는 (3)번 줄의 명령으로 인해, 함수를 호출한 secret_number()라는 부분이 486으로 대체됩니다. 그러나 (5)번 줄에서 대체된 값을 출력하라는 명령은 없기 때문에, 486이 출력되지 않는 것입니다.

사례 4

그렇다면 함수 내부에서 print문과 return문의 순서가 바뀌어 있으면 어떻게 될까요?

1. def secret_number(): 2. return 486 3. print("우리의 비밀 번호는: ") 4. 5. print(secret_number()) 486


 486만 출력되고, "우리의 비밀 번호는: "은 출력되지 않은 것일까요?파이썬이 (2)번 줄에서 return문에 도달하면, 486이 리턴되고 나서 함수의 실행은 곧바로 종료됩니다. (3)번 줄이 dead code여서 "우리의 비밀 번호는: "이 출력되지 않은 것입니다.

프로그래밍/Python

기초) return 정리 및 문제 풀기

takudaddy 2020. 5. 28. 21:10

return 은

함수 내부에서 사용하는 키워드.

함수 내부에 작성된 코드가 실행되다가

리턴이라는 키워드를 만나면

실행된 결괏값을 함수 바깥으로

반환해 나가게 되는데 이러한 반환 값을

리턴 값이라고 부른다.


기본 원리

1. 기본 기능

함수 내부의 코드를 실행 중이던 프로그램이

return 키워드를 만나면 그 아래쪽에 있는

코드는 실행이 안 되며 프로그램이 종료된다.

def function() :

print(A)

rerurn

print(B)

function()

파이썬 return 출력 - paisseon return chullyeog

2. print 함수로 해당 함수를

최종 출력할 때 return 값

파이썬 return 출력 - paisseon return chullyeog

None이 출력된다!


3. 반환 값

리턴에 값을 넣어주면

그 값을 가지고 돌아가게 된다.

파이썬 return 출력 - paisseon return chullyeog

기본 문제

1. 두 수를 더하는 함수를 만들어

값을 반환하시오

기본 예제 중의 하나.

동일한 코드를 두 개 나누어 작성하는데

하나는 함수 자체를 출력하는 코드,

다른 하나는

함수를 x라는 변수에 담아

출력하는 코드.

파이썬 return 출력 - paisseon return chullyeog

2. start ~ end까지의

모든 정수를 더하는 함수를 만드시오

먼저 함수명과 매개변수, 인자 값을

설정, 다음으로 반복문을 만들어 준다.

반복 문의 범위를 range 함수로 지정해

i에 담아 주고 덧셈에 영향을 주지 않는

숫자 0을 변수로 지정,

반복문이 돌 때마다 지정해둔 범위의 수가

하나씩 증가하며 더해지게 만들어 주고

최종적으로 변수를 반환시킨다.

파이썬 return 출력 - paisseon return chullyeog

3. 다음 방정식을 함수로 만드시오

f(x) = x

def f(x):

return x

print ( f(10) )

f(x) = 2x + 1

f(x) = (x**x) 2x + 1

파이썬 return 출력 - paisseon return chullyeog

*ㅇ와 같이 어떤 상황에도 항상

같은 값을 내는 함수를 순수 함수,

pure function이라고 한다.

별 의미 없고 쓸데없는 지식이라고~


4. 매개 변수로 전달된 값들을 모두 곱해

리턴하는 가변 매개변수 함수를 만드시오

def mul(*value) :

print (mul(5,7,9,10))

실행 결과 : 3150

위 2번 덧셈 문제 때는

덧셈에 지장을 주지 않는

숫자 0을 초기화 값으로 변수에

넣었는데

이번에는 곱셈이니 역시나

곱셈에 영향을 주지 않는 1을

초기화 값으로 변수에 넣었다.

이제 for 반복문을 사용해

매개 변수의 값들을 i에 넣어주고

이것들을 하나씩 곱해준 후

변수를 반환시키면 된다.

파이썬 return 출력 - paisseon return chullyeog