더북(TheBook)

7.3.1 len( )으로 문자열 안의 문자 개수 알아내기

학생들이 제출한 보고서를 읽고 있다고 하자. 보고서는 최대 2,000자까지 허용되는데 학생이 문자수 제한을 지켰는지 어떻게 알 수 있을까? 보고서를 모두 한 문자열에 넣은 후 len() 함수를 사용하면 문자열의 전체 문자 개수를 알 수 있다. 개수에는 공백이나 기호 등도 포함된다. 빈 문자열의 길이는 0이다. 예를 들어 다음을 보자.

len("")0으로 계산된다.

len("Boston 4 ever")13이다.

len("서울의 봄")5로 계산된다.

a = "어라?"인 경우 len(a)3이다.

len() 함수는 문자열뿐만 아니라 다른 타입의 객체에도 사용할 수 있다는 점에서 특별하다.

다음으로 다룰 문자열 연산은 모양이 함수와 좀 다르다. 마침표 표기법(dot notation)은 문자열 객체에 대해 명령을 실행한다. 만약 사용하려는 연산이 특정 타입의 객체에만 작용하는 경우, 마침표 표기법을 사용해야 한다. 예를 들어 문자열의 모든 소문자를 대문자로 변환하는 명령은 오직 문자열 객체에만 작동한다. 정수나 실수 등 수 객체에 이런 연산을 사용하는 것은 의미가 없다. 따라서 이 명령의 경우 문자열 객체에 대해 마침표 표기법을 사용해야 한다.

마침표 표기법으로 명령을 호출하는 것은 len() 같은 함수를 바탕으로 한 명령과 모양이 다르다. 문자열 객체나 문자열을 가리키는 변수 이름을 함수 이름 뒤의 괄호에 넣지 않고, 명령 이름 앞에 문자열이나 변수 이름을 두고 그 사이에 마침표(.)를 넣는다. 예를 들어 lower(a)가 아니라 a.lower()를 사용한다. 마침표는 오직 주어진 객체(여기서는 a가 가리키는 문자열)에만 작용하는 명령이라는 사실을 보여 주기 위한 것이다.

사실 이 부분은 30장에서 다룰 객체 지향 프로그래밍(object-oriented programming)이라는 더 심오한 개념을 살짝 맛본 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.