inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

전달값과 반환값

withdraw_night 함수관련 return의 튜플형식에 대해 질문있어요.

299

박연우

작성한 질문수 1

0

안녕하세요. 강의 잘 보고있습니다.

withdraw_night 함수에서 리턴을 튜플형식으로

return commission, balance - money - commission

처럼 정리해 주셨는데 튜플형식으로 서술하셨는지, 왜 commission 변수가 withdraw_night 함수 안에 들어있는지 궁금합니다.

돌머리로는 이해가 가지않아서 제가 이해하기 쉬운 방식으로, commission 변수를 balance 변수처럼 외부에서 선언하였고  withdraw_night의 리턴값도 return balance - money - commission으로 한 뒤,

다시 외부에서 commission, balance = withdraw_night(balance, 500)을  balance = withdraw_night(balance, 500)로 변경했는데 출력값은 똑같이 나왔습니다. 

def withdraw_night(balancemoney): #저녁에 출금
    # commission = 100 #수수료 100원
    return balance - money - commission

commission = 100 
balance = 0 #잔액
balance = deposit(balance, 1000)
# balance = withdraw(balance, 500)
balance = withdraw_night(balance, 500)
print("수수료는 {0}원이며, 잔액은 {1}원 입니다.".format(commission, balance))

python

답변 2

1

Robert

추가로 왜 튜플형식인가 하면, type이란 함수로 확인하면 변수 타입이 튜플로 나오네요 아래 함수를 호출해 보세요

def withdrow_closed(balance , money):
    commission = 100 # 수수료
    return (commission, balance - money -commission)

print(type(withdrow_closed(1000 , 100)))

1

나도코딩

함수의 return 으로 2개 이상의 값을 반환할 때는 , 를 이용한 튜플 형태로 작성하셔야 합니다. 그리고 commission 변수가 함수 안에 선언되는 것의 의미는, 그 commission 함수는 함수를 벗어나면 사용할 수가 없습니다. 이를 지역변수라고 하는데, 함수 밖의 동작과는 아무런 관련 없이 오직 함수 내에서만 그 역할을 충실히 하는 변수입니다. 마치 책상 서랍 1층에는 펜 관련, 2층에는 노트 관련, 3층에는 또 어떤 특정한 것 관련, 이런 식으로 구역이 나누어져 있으면 혹시라도 다른 책상으로 옮길때도 구역별로 쉽게 옮길 수 있겠지요. 프로그램도 이와 유사하답니다. 책상 위에 펜과 노트가 널부러져 있고 2층에 펜이 들어가고 1층에 노트가 들어가고 이러면 굳이 함수로 나누는 것이 의미가 없게 됩니다. withdraw_night 와 같은 함수는, 일반적으로 전달받은 값만 가지고 그 함수의 이름에 맞는 역할을 충실히 이행하고 필요할 때는 1개 이상의 값을 반환해주도록 작성하시는 것이 좋습니다.

quiz 8 오류 문제

0

69

1

str() 작성 위치

0

51

1

아나콘다

0

60

1

윈도우 설치 도와주세요

0

74

1

std_weight함수에서weight만return가능한가요?

0

67

1

오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.

0

34

1

설치해서 시작하는데 문제가 있습니다.

0

69

1

함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?

0

103

1

2장 환경설정 문의

0

73

1

스타크래프트 프로젝트

0

74

1

python 파일명.py 입력시 Python 출력

0

133

1

로드맵 질문있습니다!

0

85

2

오류

0

74

1

질문 있습니다.

0

74

1

블로그에 학습한 내용을 정리해도 괜찮을까요?

0

171

1

#퀴즈 3의 5번 질문

0

72

1

print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다

0

81

1

가변인자의 위치가 중요한가요?

0

79

1

vscode옛날 버전 설치

0

221

1

글자색상이 선생님처럼 안나옵니다

0

186

1

슬프네

0

155

1

quiz 6번 관련 문의입니다.

0

129

1

퀴즈#3에 대해서 이렇게 작성해도 되나요?

0

194

1

피드백 부탁드립니다

0

93

1