파이썬 입문자 질문 : print 에서의 콤마와 str

조회수 761회

초보자를 위한 파이썬 300제를 풀고 있는데

ice_cream = {'메로나': 1000, '빠삐코' = 1100}

에서 메로나 가격: 1000 을 출력하려고

print('메로나 가격:' (ice_cream['메로나'])) 썻는데 str이 안된다고 하더군요

print('메로나 가격:',(ice_cream['메로나']))이 답인데 , 한개가 띄어쓰기 말고 str과 무슨 관계이 있는지 모르겠어요.

입문자라 기초적인거 같은거 질문해서 죄송합니다. 자세히 설명해주시면 감사하겠습니다

  • , 없이 사용하시려면 print('메로나 가격:%d' %ice_cream['메로나']) 와 같은 방법으로 쓰시면 됩니당. str이 안된다는게 아니라 str오브젝트를 호출할 수 없다고 뜰거 같은데요. 단순하게 str이 안된다고 말씀하신거랑 호출할 수 없는 객체인거랑은 다른의미 인거같아요. 스택오버플로우에 비슷한 질문이 있어 공유드립니다 https://stackoverflow.com/questions/6039605/typeerror-str-object-is-not-callable-python 김호원 2020.3.6 09:18

1 답변

  • 파이썬에서 문자열과 숫자를 합쳐서 표현하는 방법은 흔히 3가지 방법중 하나를 사용합니다.

    • 변수의 자료형을 임시로 변경하여 사용하는것을 '캐스팅'이라고 합니다.
      파이썬은 기본적으로 문자열에 숫자를 더할수 없습니다.
      다만 이렇게 str로 감싸주게 되면 일시적으로 문자열로 변환하여 사용하겠다는 의미가 됩니다.
      이렇게 캐스팅을 이용하면 결과적으로 문자와 문자를 더한꼴이 되므로 문자와 숫자를 합쳐 사용 할수 있게 됩니다.
    • 파이썬의 print함수는 전달인자를 여러개 줄 경우 인자사이에 공백을 하나 두고 전달받은 값을 모두 출력해줍니다.
      기본적으로 print함수는 문자열이 아닌 값을 인자로 넣어도 출력을 해줍니다.
    • 포매팅이라는 기능을 이용하여 원하는값을 출력하는 방법도 있습니다.
      자세한 사항은 여기를 참조하시면 될것같습니다.

    많이들 헷갈리시는게 print(1000)는 의도하신대로 작동합니다.
    print('count: ' + 1000)가 오류가 나는 이유는 'count: '1000은 더할 수 없기때문입니다.

    아래는 올려주신 코드를 올바르게 작동하도록 수정한 예제입니다.

    ice_cream = { 
        '메로나': 1000,
        '빠삐코': 1100
    }
    
    # 1. 캐스팅을 이용한 출력
    print('메로나 가격:' + str(ice_cream['메로나']))
    # 2. 콤마를 이용한 출력
    print('메로나 가격:', ice_cream['메로나'])
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)