한줄에서만 성립하는거{ex)replace} 하고 여러줄에 성립하는 거{ex)append,dell}의 차이점

조회수 525회

안녕하세요 python 처음 배워서 개강전 연습해보려는 학생인데요. 여러줄에서 성립하는거하고 한줄에서 성립하는거하고 차이점을 모르겠어요

a=[12,245,34,23,6,237]

print(a.sort())
"""이건 왜 NONE이죠???"""

a.sort()
print(a)
c="개강 안 해서 심심하다."
c.replace("심심하다.","행복하다")
print(c)

"""왜 replace가 적용이 안되죠?"""

print(c.replace("심심하다.","행복하다!"))

"""replace는 한줄 안에서만 성립하나요???"""

이밖에도 list.append() 같은 거는 print 밖에서만 성립하고 안에서는 안 되던데요. 한줄에서만 성립하는거{ex)replace} 하고 여러줄에 성립하는 거{ex)append,dell}의 차이점이 있나요?

찾아서 외워야...할까요? 아니면 많이해서 경험적으로 익히거나 오류날 때 마다 찾아볼까요?

1 답변

  • 관련문서

    a=[12,245,34,23,6,237]
    print(a.sort()) # None
    

    list.sort()는 list의 요소 순서를 변경 후 아무것도 반환하지 않습니다. a 자체의 값이 변경된다고 보면 됩니다. 그리고 반환값이 없으니 None으로 출력합니다.

    c="개강 안 해서 심심하다."
    c.replace("심심하다.","행복하다")
    print(c) # 개강 안 해서 심심하다.
    

    str.replace()는 치환된 문자열을 반환합니다. list.sort()와 반대로 c 자체의 값이 변하지 않고 반환하기만 합니다. 따라서 위 코드에서는 c 원래의 값 그대로 출력합니다.

    이런식으로 메서드마다 객체 자신이 소유한(?... 정확한 표현 아님) 값을 변경하는게 있고 변경하지 않는게 있습니다. 변경하지 않는 경우는 대게 변경된 값을 보관하지 않고 반환하는 것으로 끝납니다.

    이런걸 알아내는 방법은 (자주 써서 외우는걸 제외하면) 일반적으로:

    • 공식 API 문서를 본다.
    • 편집기에서 제공하는 메서드 설명(변수, 반환값 등) 툴팁을 본다.
    • 실행 한 번 해보고 알아낸다.

    가 있습니다.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)