얕은물_인쇄용p169중첩함수 질문
314
hyunjumink
작성한 질문수 1
0
아래는 제가 작성한 코드이고
# 캣은 매달 월과 같은 요일에 적립금 이벤트를 진행하기로 했습니다.
# 예를 들어, 2월 2일에는 적립금의 2배를, 3월 3일에는 적립금의 3배를 적립해줍니다.
# 만약 손님이 2월 2일에 5000원의 생선을 구매하고, 3월 3일에 15000원을 구매했다면 각각 얼마의 적립금을 받을 수 있을까요?
# 중첩 함수를 사용하여 풀어보세요!
구매금액_Feb = int(input('2월 2일에 얼마를 구매하셨나요?'))
구매금액_Mar = int(input('3월 3일에 얼마를 구매하셨나요?'))
def 배수(n):
def 적립(value):
적립_Feb = 구매금액_Feb * 0.1 * n
적립_Mar = 구매금액_Mar * 0.1 * n
return 적립
Feb = 배수(2)
Mar = 배수(3)
print(Feb)
print(f'2월 적립금 이벤트: {Feb} 노드가 적립되었습니다.')
print(f'3월 적립금 이벤트: {Mar} 노드가 적립되었습니다.')
여기서부터 결과입니다
2월 2일에 얼마를 구매하셨나요?5000 3월 3일에 얼마를 구매하셨나요?15000 <function 배수.<locals>.적립 at 0x7f64fed7ec20> 2월 적립금 이벤트: {<function 배수.<locals>.적립 at 0x7f64fed7ec20>} 노드가 적립되었습니다. 3월 적립금 이벤트: {<function 배수.<locals>.적립 at 0x7f64fed7e0e0>} 노드가 적립되었습니다.
각 달 적립금이 왜 이렇게 뜨는 건가요?
def 배수(n):
def 적립(value):
적립_Feb = 구매금액_Feb * 0.1 * n
적립_Mar = 구매금액_Mar * 0.1 * n
return 적립
여기서 뭔가 잘못된 거 같은데 뭐가 잘못된 건지 잘 모르겠어요
답변 1
0
안녕하세요. hyunjumink 님!
적립금이 저렇게 뜨는 이유는
1. 적립 함수를 호출했을 때에 인수를 넣어주지 않았기 때문입니다.
수정 전
return 적립
수정 후
return 적립(n)
2. 적립 함수를 호출 했더라도 리턴값이 없기 때문에 값이 None으로 나오게 됩니다.
수정 전
def 적립(value):
적립 = 구매금액_Feb * 0.1 * value
수정 후
def 적립(value):
적립 = 구매금액_Feb * 0.1 * value
return 적립
해당 코드를 참고하시면 됩니다.
프롬프트의 영문 버전을 만들 때, 출력 규칙에 포함된 한글 부분은 영어로 번역하지 않고 그대로 유지하면서, 영문 편과 한글 편을 한 번에 함께 출력하려면 어떤 워크플로우로 구성하면 좋을까요?
0
8
0
프로그램은 뭘 사용하시는 건가요??
1
10
2
수업자료와 노션 공유 문제
0
16
3
python run.py 실행시 에러 문제
1
29
2
조건 반복문 질문: for 문 ?
0
22
0
54강 4분 41초에서 질문 있어요.
0
20
1
커서창
1
32
2
강의 제작
1
35
1
23강 질문드립니다, 강사님.
0
23
1
import
0
20
1
45강 예제4번에서 질문 있어요!
0
32
1
45강 강의 10분 03초 내용에서 x + 1 을 하는 이유는 뭔가요?
0
25
1
Json.stringify 관련 오류일까요?
0
25
2
3강, 7강 화면이 안나옵니다. 그냥 검은화면으로만 노출되요;;
0
28
1
소수점 출력 질문입니다.
0
305
1
알고리즘 강의
0
241
0
얕은물 주피터 노트북
0
257
0
깊은물 셋 강의 영상 전반부가 삭제되었네요.
0
261
1
홈페이지 링크 부탁드립니다.
0
295
1
input 함수 파일 문의
0
368
1
코드 다운로드 파일 주소 확인 요청
0
305
1
생선판매 while 구문 질문
0
301
1
in 구문에서 튜플 관련 질문
1
261
1
비트연산자 2의 보수
1
981
3





