def 함수 질문
조회수 331회
이미지 1은 문제이고 이미지 2는 정답입니다.
def multiples(n, m):
for i in range(1,m+1):
print(n*i,end='')
r1,r2,r3,r4=multiples(3,4)
print(r1,r2,r3,r4)
r1,r2,r3,r4,r5=multiples(2,5)
print(r1,r2,r3,r4,r5)
전 이렇게 했는데 얘는 왜 안되는건가요?
2 답변
-
함수정의에서
return
의 뜻과 역할이 무엇인지 대답해 보세요. 그 대답을 하려고 노력하면서 스스로 알게 될 수도 있습니다.
제가 define을 썼음에도 return함수를 쓰지 않아 함수 값을 부르지 않았다는 점을 지적하신 것 같고
return 이 "함수 값을 부르"는 역할을 하나요? 이 질문에 답을 해 보세요.
- 일단 두 분 답변 너무나도 감사합니다!! jeongwonbahk 2022.5.28 21:55
- 제가 계속 생각을 해봤는데 일단 daewon님은 제가 define을 썼음에도 return함수를 쓰지 않아 함수 값을 부르지 않았다는 점을 지적하신 것 같고 초보 님은 밑에 타입 에러를 통해 힌트를 주셨고 저렇게 프린트로 출력시킬때는 한번에 할당하면 안되고 각각 할당해야 한다고 지적하신 것 같은데 일단 먼저 맞는지 여쭤봐도 될까요? 그리고 해결하려고 지금 노력중인데 할당을 한번에 안시키는 방법을 잘 모르겠습니다. 다음 힌트도 알려주시면 정말 감사하겠습니다!! jeongwonbahk 2022.5.28 21:58
-
daewon님 설명에 숟가락을 얹어 봅니다.
다음 예시를 보고 주어진 코드와 본인이 짠 코드 사이에 어떤 차이가 있는 것인지 생각해보세요.
a, b, c = 1, 2, 3 print(a, b, c) >> 1 2 3
d, e, f = 1 print(d, e, f) >> Traceback (most recent call last): d, e, f = 1 TypeError: cannot unpack non-iterable int object
- 일단 두분 답변 너무 감사합니다!! 제가 계속 생각을 해봤는데 일단 daewon님은 제가 define을 썼음에도 return함수를 쓰지 않아 함수 값을 부르지 않았다는 점을 지적하신 것 같고 초보 님은 밑에 타입 에러를 통해 힌트를 주셨고 저렇게 프린트로 출력시킬때는 한번에 할당하면 안되고 각각 할당해야 한다고 지적하신 것 같은데 일단 먼저 맞는지 여쭤봐도 될까요? 그리고 해결하려고 지금 노력중인데 할당을 한번에 안시키는 방법을 잘 모르겠습니다. 다음 힌트도 알려주시면 정말 감사하겠습니다!! jeongwonbahk 2022.5.28 21:58
- 한 번에 안 시키는 방법이 뭔지 모르겠네요. 에러를 발생시키려고 print를 한 게 아니라 아무거나 해도 상관없는데 그냥 print를 쓴 겁니다. 제가 작성한 것 + daewon님이 작성해주신 것 + 정답 코드를 모두 확인해보고 정답 코드와 본인이 작성한 코드의 어떤 점이 다른걸까 고민해보세요. 초보자 2022.5.29 19:51
댓글 입력