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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)