return 문이 무엇인지, 파이썬에서 사용하는 방법에 대한 간단한 기본 설명은 무엇입니까?
그리고 그것과 print
진술 의 차이점은 무엇 입니까?
답변
이 print()
함수는 콘솔에 문자열을 기록합니다. 즉, “prints”입니다. 이 return
명령문은 함수를 종료하고 호출자에게 값을 돌려 주도록합니다. 일반적으로 함수의 요점은 입력을 받아 무언가를 반환하는 것입니다. 이 return
문은 함수가 호출자에게 값을 반환 할 준비가되었을 때 사용됩니다.
예를 들어, 다음은 print()
및 둘 다를 활용하는 함수입니다 return
.
def foo():
print("hello from inside of foo")
return 1
이제 다음과 같이 foo를 호출하는 코드를 실행할 수 있습니다.
if __name__ == '__main__':
print("going to call foo")
x = foo()
print("called foo")
print("foo returned " + str(x))
이것을 .py
파이썬 인터프리터와는 반대로 스크립트 (예 : 파일)로 실행 하면 다음과 같은 출력을 얻을 수 있습니다.
going to call foo
hello from inside foo
called foo
foo returned 1
이것이 더 명확 해지기를 바랍니다. 인터프리터는 콘솔에 반환 값을 작성하여 누군가가 왜 혼란 스러울 수 있는지 알 수 있습니다.
다음은이를 보여주는 인터프리터의 또 다른 예입니다.
>>> def foo():
... print("hello from within foo")
... return 1
...
>>> foo()
hello from within foo
1
>>> def bar():
... return 10 * foo()
...
>>> bar()
hello from within foo
10
foo()
에서 호출 될 때 bar()
1이 콘솔에 기록되지 않음을 알 수 있습니다 . 대신에서 반환 된 값을 계산하는 데 사용됩니다 bar()
.
print()
부작용 (콘솔에 문자열 쓰기)을 유발하는 함수이지만 실행은 다음 문으로 다시 시작됩니다. return
함수가 실행을 중지하고 호출 된 값을 다시 넘깁니다.
답변
답변
print 문을 부작용 을 일으키는 것으로 생각하면 함수가 사용자에게 텍스트를 작성하지만 다른 함수에서 사용할 수 없습니다 .
몇 가지 예와 Wikipedia의 몇 가지 정의를 통해이를 더 잘 설명하려고합니다.
다음은 Wikipedia의 함수 정의입니다.
수학에서 함수는 입력이라고도하는 함수의 인수 인 한 수량을 출력이라고도하는 함수의 값인 다른 수량과 연관시킵니다.
잠시 생각해보십시오. 함수에 값이 있다는 것은 무엇을 의미합니까?
의미하는 바는 실제로 함수의 값을 일반 값으로 대체 할 수 있다는 것입니다! (두 값이 동일한 유형의 값이라고 가정)
왜 물어보고 싶습니까?
무엇으로 값이 동일한 유형의 동의를 할 수있는 다른 기능에 대한 입력을 ?
def square(n):
return n * n
def add_one(n):
return n + 1
print square(12)
# square(12) is the same as writing 144
print add_one(square(12))
print add_one(144)
#These both have the same output
출력을 생성하기 위해 입력에만 의존하는 함수에 대한 멋진 수학적 용어가 있습니다. 참조 투명성. 다시, Wikipedia의 정의.
참조 투명성과 참조 불투명도는 컴퓨터 프로그램의 일부 속성입니다. 프로그램의 동작을 변경하지 않고 값으로 바꿀 수있는 표현식은 참조 적으로 투명하다고합니다.
프로그래밍이 처음이라면 이것이 무엇을 의미하는지 이해하기가 조금 어려울 수 있지만 몇 가지 실험 후에 얻을 것이라고 생각합니다. 그러나 일반적으로 함수에서 인쇄와 같은 작업을 수행 할 수 있으며 끝에 return 문을 사용할 수도 있습니다.
return을 사용할 때 기본적으로 “이 함수에 대한 호출은 반환되는 값을 쓰는 것과 동일합니다.”라는 것을 기억하십시오.
파이썬은 여러분이 직접 입력하는 것을 거부하면 실제로 반환 값을 삽입 할 것입니다. 이것은 “None”이라고 불리며 단순히 아무것도 의미하지 않거나 null을 의미하는 특별한 유형입니다.
답변
파이썬에서는 “def”로 함수 정의를 시작하고 일반적으로 “return”으로 함수를 종료합니다.
변수 x의 함수는 f (x)로 표시됩니다. 이 기능은 무엇을합니까? 이 함수가 x에 2를 더한다고 가정합니다. 그래서 f (x) = x + 2
이제이 함수의 코드는 다음과 같습니다.
def A_function (x):
return x + 2
함수를 정의한 후이를 모든 변수에 사용하고 결과를 얻을 수 있습니다. 예 :
print A_function (2)
>>> 4
다음과 같이 코드를 약간 다르게 작성할 수 있습니다.
def A_function (x):
y = x + 2
return y
print A_function (2)
그것은 또한 “4”를 줄 것입니다.
이제이 코드를 사용할 수도 있습니다.
def A_function (x):
x = x + 2
return x
print A_function (2)
이것은 또한 4를 줄 것입니다. 반환 옆의 “x”는 실제로 “A_function (x)”의 x가 아니라 (x + 2)를 의미합니다.
이 간단한 예를 통해 return 명령의 의미를 이해할 수있을 것 같습니다.
답변
return
“이 함수에서이 값을 출력”을 의미합니다.
print
“이 값을 (일반적으로) stdout으로 전송”을 의미합니다.
Python REPL에서 함수 반환은 기본적으로 화면에 출력됩니다 (인쇄와 완전히 동일하지 않음).
다음은 인쇄의 예입니다.
>>> n = "foo\nbar" #just assigning a variable. No output
>>> n #the value is output, but it is in a "raw form"
'foo\nbar'
>>> print n #the \n is now a newline
foo
bar
>>>
다음은 반환의 예입니다.
>>> def getN():
... return "foo\nbar"
...
>>> getN() #When this isn't assigned to something, it is just output
'foo\nbar'
>>> n = getN() # assigning a variable to the return value. No output
>>> n #the value is output, but it is in a "raw form"
'foo\nbar'
>>> print n #the \n is now a newline
foo
bar
>>>
답변
이 답변은 위에서 논의되지 않은 일부 경우에 대해 설명합니다. 반환 문을 사용하면 할 수 있습니다 종료 당신이 끝에 도달하기 전에 함수의 실행을. 이로 인해 실행 흐름이 즉시 호출자에게 반환됩니다.
4 번 줄 :
def ret(n):
if n > 9:
temp = "two digits"
return temp #Line 4
else:
temp = "one digit"
return temp #Line 8
print("return statement")
ret(10)
조건문이 실행 된 후 ret()
함수는 return temp
(라인 4) 로 인해 종료됩니다 . 따라서 print("return statement")
실행되지 않습니다.
산출:
two digits
조건문 뒤에 나타나는이 코드 또는 제어 흐름이 도달 할 수없는 위치가 데드 코드 입니다.
반환 값
4 번과 8 번 줄에서 return 문은 조건이 실행 된 후 임시 변수의 값을 반환하는 데 사용됩니다.
인쇄 와 반환 의 차이를 드러내려면 :
def ret(n):
if n > 9:
print("two digits")
return "two digits"
else :
print("one digit")
return "one digit"
ret(25)
산출:
two digits
'two digits'
답변
@Nathan Hughes의 훌륭한 답변에 추가하기 만하면됩니다.
return
문은 제어 흐름의 일종으로 사용할 수 있습니다. return
함수 중간에 하나 (또는 그 이상의) 명령문 을 넣으면 “이 함수 실행을 중지하십시오. 원하는 것을 얻었거나 뭔가 잘못되었습니다!”라고 말할 수 있습니다.
예를 들면 다음과 같습니다.
>>> def make_3_characters_long(some_string):
... if len(some_string) == 3:
... return False
... if str(some_string) != some_string:
... return "Not a string!"
... if len(some_string) < 3:
... return ''.join(some_string,'x')[:,3]
... return some_string[:,3]
...
>>> threechars = make_3_characters_long('xyz')
>>> if threechars:
... print threechars
... else:
... print "threechars is already 3 characters long!"
...
threechars is already 3 characters long!
이러한 .NET 사용 방법에 대한 자세한 내용은 Python 가이드 의 코드 스타일 섹션 을 참조하세요 return
.