코딩하는데 return이 어떤 역활을 하나요?
파이썬을 사용중인데 return이라는 함수?를 봤습니다. 어떤 값에 반환하고 돌려주는 역활을 한다는데 이게 뭔지 정확히 이해가 안가요.....혹시 return을 설명해주신다면 쉽게 예도 하나 들어주세요!
안녕하세요
먼저 Void가 있는 함수와 없는 함수가 존제 하는데요
Void가 있는 함수는 return 값이 없는 것이고요
Void 자리에 int가 있다면 int형으로 반환 한다는 뜻입니다.
또 한가지는 리턴뒤에는 실행을 하지 않고 함수를 빠져 나가게 됩니다.
Void test(char dt)//리턴 값 없음
{
return;
//<= 위에서 리턴이 있기에 이 부분은 처리 안합니다.
}
int test(char dt) //dt값에 10을 더해서 리턴
{
return dt+10;
}
예를 들어 볼께요
#함수 정의
def add(a,b):
return a+b
r = add(10,20) #함수 호출
print(r) #30
위의 add라는 함수는 두개의 정수를 매개변수로 받아 합을 돌려주는 함수입니다.
함수는 특정한 기능을 수행하기위해서 정의해 놓고 호출하여 사용하게 됩니다.
함수는 호출시에 메모리에 생성되어서 함수의 return 을 만나면 함수가 종료됩니다.
함수가 종료될때 호출한 쪽으로 return의 뒤쪽의 값을 전달하게 됩니다.
위의 예 에서는 호출한쪽에서 돌려주는값( 즉 return값) 을 받아서 대입연산자를 이용하여 변수(r)에 저장하고
r을 출력하여 돌려준값을 확인 하였습니다.
즉 함수의 return 은 힘수를 호출한 쪽에 값을 전달하는 역활을 합니다.
안녕하세요
샘플 소스 입니다.
return이 있고 없고는 함수 호출 후 받을 값이 있냐 없냐 입니다.
# return이 없는 함수 def sum1(a, b): c = a + b # c 값이 없음 (None 객체) c = sum1(1, 2) print('c :', c) # 출력결과 c : None# return이 있는 함수 def sum2(a, b): return a + b # c 값이 a + b를 합한 값이 나옴 c = sum2(1, 2) print('c :', c) # 출력결과 c : 3안녕하세요.
Python을 사용하면서 사용자 함수를 만들게 될 겁니다.
함수는 처리 후 바로 끝나버리는 함수도 있을 것이고, 처리 후 결과 값을 돌려줘야 하는 함수도 있을 것입니다.
결과값을 돌려줘야하는 함수를 만들때 return을 사용합니다.
아래와 같은 경우에 말이죠.
def add(x, y):
z = x+y
return z
return 은 대부분의 경우 return을 포함한 함수를 여기서 끝내고 return 뒤에 값이 있다면 이 값을 반환한다는 뜻입니다.
다양한 쓰임이 있어 한가지 예로 설명했다가는 자칫 적절한 설명이 되지 못할 수 있는데 return 뒤에 어떤 변수나 식이 있다면 그 값을 반환하는 것이고 그 함수를 호출하는 곳에서 결국 그 return 뒤의 값을 받아서 사용하게 되는 것입니다.
혹시 반복문 중에 return이 있고 return 뒤의 값이 없다면 지금까지의 진행까지를 목표로 한 것이었으므로 이만 반복문을 멈추게 됩니다.
리액트 같은 곳에서는 return을 통해 html을 나타내기도 하는데 이는 자바스크립트 영역이므로 따로 적지는 않겠습니다만 리액트 문서를 참조하시면 금방 이해하실 수 있습니다.
일반적으로 프로그래밍에서 return값은 수학으로 ' = '에 비슷하다고 생각하시면 될 것같습니다.
a+b = c
c라는 값을 도출하기 위한것이죠 .
파이썬은 사용해보지 않아서 예는 javascript로 보여드리면 다음과 같습니다.
------
function plus(a, b) {
var c = a + b
return c
}
-----
console.log(plus(1,2)) // console.log는 파이썬의 print입니다(콘솔 출력)
====> 3
파이썬 반환문 관련 링크도 공유드립니다.
안녕하세요.
파이썬 개발자는 아니나.. 공통된 내용이기에 답변달아봅니다.
아주 단순합니다.
RETURN ..리턴.. 돌려줘라..
즉 A 라는 사람이 프로그램에게
질문 ) 오늘 날씨는 어때 ?? 라고 질문을 하면
답 ) 프로그램은 오늘날씨를 검색해보고. 오늘날씨는 "비" <-- 이렇게 대답하지요.. 이때 돌려주는 대답을 RETURN으로 되돌려주는겁니다.
보통
변수 = 함수(데이터) 이런씩으로 사용한다고했을때..
변수 = RETURN 받을 변수이고
함수(데이터) 는 함수에서 해당 데이터를 가지고 결과를 변수에 넣는것이지요.
모든언어가 이부분은 동일한 방식이라고 보시면될듯합니다.
언어에 관련없이 그냥 예를들어보면
INT HAP = PLUS(10,10) ; 숫자 형식의 HAP 이라는 변수는 PLUS(10,10) 이라는 함수를 실행.
FUNCTION PLUS(A,B){ 함수를 지정하고
RETURN A+B 리턴되는 내용을 적어줍니다. 즉 A 랑 B를 합친 값을 보내줘라..
}
이러면 HAP 는 20 이되는거죠
고급 프로그래밍 언어에서 리턴은 함수(function) 때문에 나온 개념입니다. 절차적이던 객체지향이던 함수형이던 프로그래밍은 다양한 function으로 구성됩니다. 또, 수학식 y=f(x) 에서 출발합니다. return 은 계산한 값을 돌려주는 역할이죠. f()가 함수 혹은 메소드, x가 파라미터, f(x)가 리턴 값이라고 보시면 됩니다. 즉, 리턴 값을 받아서 y에 돌려주는 역할이죠. 가령 y=f(2) 이고 function의 return x*x 라고 하면 4가 반환(return)됩니다. 그래서 y 값은 4가 되는 것입니다. x(파라미터)는 여러개가 될 수도 있습니다. 파이썬에서는
def add(a, b):
return a + b
처럼 2개를 넣을 수 있습니다. y = add(2, 3) 하고 print(y) 하면 어떤 값이 나올까요? 수학식 y=add(2, 3) 으로 보시면 되겠습니다. 즉, 리턴은 y값을 구하기 위해 특정 function에 파라미터를 넣고 계산해서 나온 값으로 보면 됩니다.
C 에서 쓰이는 return 이란 간단히 말하면
나를 호출한 상대에게 내가 할일을 마친 뒤에 돌려주는 값을 의미 합니다.
그리고 되돌려 주는 return 값의 타입은 함수를 선언할때 앞에 써주는 타입을 따르게 되있습니다.
void return 없음
int int 형 타입의 값을 return
double double 형 타입의 값을 return
char char 형 타입의 값을 return
struct struct( 구조체 ) 를 return
주로 main 함수는 정말 깔끔하게 비워두고
필요한 기능을 수행하는 함수를 따로 작성해 호출만 하도록 해둡니다.
함수의 형태인
def 함수명(매개변수):
return (반환값)
에서의 return을 말하는게 맞다는 전제하에 설명을 하겠습니다. 물론 이런 질문을 하는걸 보니 개발자 공부를 하는 사람이니까 쉽게 설명을 하자면 일단 함수의 개념은 대충아시겠죠?
함수는 개발의 편의와 코드의 수정, 재사용성 등에 좋기때문에 사용한다고 보면 되구요. 그렇게 되면 메인 함수에서 개별적인 함수를 호출하게 되는데요.
책에 나온 예처럼
a = 2; b=4
res = a+b
print(res)
라는 간단한 더하기라는 기능을 코드로 그대로 작성하서 쓸수도 있지만
계산기 등을 만들때
def add(a, b):
return a+b
res=add(2, 4)
print(res)
처럼 더하기 함수를 정의해서 호출에서 쓸수 있는데
이때 res = add(2,4) 부분에서 위의 정의된 add함수에 a, b 에 각각 2,4의 값을 입력해주면 더한 값인 6을 다시 해당 코드의 res변수에 (함수를 호출한 그 위치) 반환해주면서 add 함수의 호출을 종료하는 기능을 하게 됩니다.
물론 return 뒤에 아무런 값 없이 함수를 끝내는 것도 가능합니다.
이때 프로그램의 흐름은 메인함수 > 호출함수 > 메인함수 로 변하면서 수행한다고 생각하면 됩니다. 이때 return은 메인 함수로 돌아가는 명령이면서 호출된 위치에 특정한 값을 되돌려주는 기능도 같이 한다고 보면 됩니다. 어려운 개념은 아니라서 쉽게 이렇게 함수를 사용한다 정도까지만 이해하셔도 함수 사용에 큰 어려움은 없을겁니다
안녕하세요 현업 6년차 개발자입니다. return이라는 명령어는 함수의 output을 지정하는 걸 말하는 겁니다.
function에 대해서 다시 공부를 하셔야할 거 같습니다.
함수엔 Input이 있습니다. 그 Input을 가지고 처리를 하면 그 결과값을 다시 받아야 하는데, return이라는 명령어로 결과값을 내뱉게 합니다.
return은 함수/메소드에서 사용되는 키워드로 함수/메소드의 호출자에게 호출 결과를 알려주는 역할을 해요.
우선 함수/메소드는 어떤 기능/로직의 묶음이라고 보시면되요.
파이썬에서는 아래와 같은 형태로 함수를 정의하고 사용할 수 있어요.
def 함수명(매개변수): 로직 return 값(값이 없어도 무방) 변수 = 함수명(매개변수)얘를 들어 add 라는 함수에서 a와 b 매개변수를 받아서 그 합을 return 하도록 구현하면
def add(a, b): temp = a + b return tempadd(5,3) 을 호출하여 c 라는 변수에 그 결과 값을 넣도록 할 수 있는거죠.
c = add(5,3)좀 더 정확히 얘기하면 파이썬에서 = 이라는 기호는 대입 연산자로 우변의 값/레퍼런스를 좌변의 변수에 할당하는 역할을 하는데
변수명 = 값/레퍼런스return 이라는 키워드는 우변에 해당하는 값/레퍼런스 를 만들어주는 역할을 해요.
그래서 우변에 함수를 호출하면
변수명 = 함수(매개변수)특정 변수에 함수 return 값을 할당할 수 있게되는거죠.
변수명 = 함수 return값안녕하세요.
Return 의 경우 말 그대로 다시 돌려받는 것이라고 생각하면 되겠습니다.
내가 a 라는 값을 던져 주었을 때 b를 돌려받는 다면 return 은 b가 되겠습니다.
어렵게 생각하지 않아도 됩니다. 리턴 받는 값은 경우에 따라 다 다르지만
돌려받는 값이라고 생각하시면 되겠습니다.
예를 들어 1 나누기 0 을 했을 때, 0은 나누기 할 수 없어! 라고 값을 돌려주면
return값은 나누기 할수 없다는 내용이 될 것입니다.
쉽게 생각하셔도 됩니다.
감사합니다.
파이썬을 배우고 함수를 배웠다면 return 이라는 것은 매우 중요한 개념입니다.
함수(function)에 대응하는 용어가 있는데 프로시져(Procedure)입니다.
함수와 어떤 작업을 수행하는 것은 동일하나 결과를 무엇인가를 반환하지 않고 처리만 하는 것이 차이점입니다.
CQRS(명령 및 쿼리 책임 분리; Command and Query Responsibility Segregation)이라는 패턴에서는 Command 는 프로시져에 대응하고 Query는 함수에 가깝다고 볼 수 있습니다.교과과정에서 함수라는 것을 배웠다면 어떤 입력과 처리 출력으로 나눌 수 있습니다.
사실 프로그램이라는 것이 어떤 입력을 받아 데이터를 처리하고 결과물을 만들어내는 것이 주요 동작입니다.아래와 같은 그림이 있을 경우
입력이 x 인데, a를 곱하고 b를 더한 것이 결과 y로 나온다고 볼 수 있습니다.
파이썬 코드로 짜본다면 아래와 같이 예를 들 수 있을 것입니다.
>>> def f1(x): ... a = 2 ... b = 3 ... y = a * x + b ... return y # y 값을 반환한다 ... >>> c = f1(10) # c = 23 >>> print(c) 23f1이라는 함수에 x를 넣으면 // f1(10)
c 에 결과가 담기게 됩니다.
print로 c의 값을 출력하면 23이라는 값이 출력이 됩니다.만약에 return 을 빼먹으면 어떻게 될까요?
>>> def f2(x): ... a = 2 ... b = 3 ... y = a * x + b ... >>> c = f2(10) # c = 23 >>> print(c) None
다른 함수 f2라는 것을 return 을 뺀 채로 만들어봅시다.실행을 해보면 None 이라고 찍힙니다. 이것은 값이 반환(return)되지 않았기 때문입니다.
위에서는 함수는 반환 값을 가지고 있다고 했으나 프로그래밍 언어에서는 반환값을 가지거나 가지지 않을 수 있습니다.
int f3(int x) { // .. return y; }
C언어에서는 반환 타입을 명시적으로 아래와 같이 표시를 합니다.만약 반환을 하지 않는다면 void 라는 키워드로 표시를 하지요.
void f4(int x) { //.. }파이썬에서는 반환 타입을 명시적으로 표시를 하지 않으므로 return 을 하느냐 안하느냐에 따라 함수의 성격을 띄느냐 프로시저의 기능을 하는지가 바뀐다고 보실 수 있습니다.
Return문을 사용 하는 이유는 화면이나 어플리케이션 단이서 특정 조건을 만족 하는 값을 돌여 주거나, 오류 값이 들어 왔을 때 사용자에게 알려 주가 위해서 사용을 합니다.
윕페이지 경우 조건이 맞는 경우 다른 페이지로 이동 시킬때 사용을 합니다.
너무 어렵게 생각 하지 마시고, 원하는 return 뜻 대로 원하는 값을 돌려 받는다라고 생삭 하시면 될거 같네요.
return 은 함수라기 보다는 문법이라고 설명 드릴 수 있을것 같습니다. return 이라는 뜻 그대로 무엇인가를 반환하는 것인데요, 대부분 스크립트, 혹은 함수에서 필요한 과정을 수행하고 결과값을 반환하는데 사용됩니다.
아직 초보이신것 같으니, 컴퓨터 과학과 메모리 관련된 부분을 제외하고 설명하자면 파이썬으로 예를 들어서
def plus(number):
temp_value = number + 1
return temp_value
number = 10
print(plus(number))
-------
위와 같이 plus 라는 함수를 정의했고, 인자로 number를 받게 됩니다. 이 상태에서 이 함수가 하는 역할을 받은 인자(정수)에 + 1 을 한 값을 temp_value 에 저장하고, 그 값을 return 즉 반환하게 됩니다. 그렇다면 아래 print()로 콘솔에 출력하게 되는 값은 플러스 함수에서 number(10)를 처리하여 받은( return 받은 값)값, 11을 출력하게 됩니다.
리턴은 돌려주는 값입니다.
예를들어서 덧샘을 도와주는 함수가 있다고 가정해봅시다.
A+B=C 라는 식이요
3+7=10 이죠?
그렇다면 프로그램 관점에서 우리가 3과 7을 주면 10이라는 결과가 나와야 합니다.
함수에서 이 10을 return이라고 합니다. 반환, 돌려주는 값인거죠
def sum(x, y):
return x + y
위 함수처럼 x y를 넣으면x+y를 반환해주는 것입니다.
안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.
보통 실제 프로그램의 본문은 main 이라고 합니다. 그리고 return은 함수의 실행을 끝마치고 다시 main으로 돌아갈 때 특정 값을 반환해 주기 위해서 씁니다. 아래의 코드를 예로 들어 보겠습니다.
def sumFunction(a, b): c = int(a) + int(b) return c hello = sumFunction(1, 2) print(hello) > 3main 에서 hello 변수에 덧셈을 반환해주는 sumFunction 함수를 사용했기 때문에 hello 에는 3이 할당 됩니다.
답변이 도움이 됐으면 합니다. 좋은 하루 되세요!
수학에 함수라는 개념이 있습니다.
y = f(x) = x + 5 라고 가정해보면
f(3) = 8을 return한다고 생각하시면 됩니다.
실제 함수는 어떤 동작을 하고 결과가 있을 경우 return하고, 동작만 할 경우 return을 생략해도 됩니다.
예를 들어 sum이라는 함수가 변수 a와 b를 더하는 함수라면 sum(a,b) { return a+b}가 됩니다.
안녕하세요.
return은 말 그대로 되돌려 주는 값을 의미합니다.
Ⅰ. return이 없는 경우
>>> def plus(a,b): ... sum=a+b ... >>> c=plus(1,2) >>> c >>>>>> type(c) <class 'NoneType'> >>>-코드 설명 :
1. 합계를 구하고자 하는 plus라는 함수를 생성, 인자는 변수 a,b를 받기로 약속합니다.
2. plus는 인자를 2개 입력받아 더한 결과를 sum이라는 변수에 저장하는 함수입니다.
3. c라는 변수 설정 후 plus함수에 인자 1,2를 입력합니다.
3. c를 출력하면 아무것도 나오지 않는 것을 확인할 수 있습니다.
4. "어? 이상하다?" 하고 c의 type을 쳐보면 NoneType(왜냐하면 우린 plus함수의 결과값을 정하지 않았기 때문입니다.)
[아.무.것.도 출력되지 않는 것을 알 수 있습니다.]
Ⅱ.return이 있는 경우
>>> def plus(a,b): ... sum=a+b ... return sum ... >>> c=plus(1,2) >>> c 3#int형 변수들의 타입확인 >>> c=plus(1,2) >>> type(c) <class 'int'> #float형 변수들의 타입확인 >>> c=plus(1.2,3) >>> type(c) <class 'float'> >>>-코드 설명 :
1,2번 위의 코드와 동일
3.c라는 변수 설정 후 plus함수에 인자 1,2를 입력합니다.
4.plus 함수의 결과값을 sum(=a+b)이라는 값으로 돌려받습니다.
5. c를 출력하면 1,2의 합인 3이 출력됩니다.
6. c의 type을 쳐보면 int(1+2=3 <- 정수형 변수)인 것을 확인할 수 있습니다.
간단한 함수로 이렇게 차이가 나는 것을 알 수 있습니다.
혹시 이해가 안되시면 말씀해주세요!!
즐코하세요:D