파이썬 문자열 길이 구하기|len() 함수

파이썬에서 문자열 길이란 무엇이며 왜 필요할까?

문자열은 글자, 숫자, 기호 등 다양한 문자들의 집합입니다. 초보자라도 "이 문자열이 몇 글자인지"를 알고 싶을 때가 많습니다. 예를 들어 비밀번호가 8자 이상인지 검증하거나, 사용자 입력이 너무 긴지 확인할 때 문자열의 길이(문자 개수)를 구합니다. 파이썬에서는 len() 함수로 쉽고 빠르게 문자열의 길이를 확인할 수 있습니다.

이 글에서는 파이썬에서 문자열의 길이를 구하는 다양한 방법과 실수 없이 정확하게 사용하는 요령을 예제와 함께 살펴봅니다. 파이썬의 기본 문법, 문자열(string) 자료형, 함수 호출 방법만 알면 충분히 따라올 수 있습니다.

가장 기본적인 문자열 길이 구하기 예제

파이썬 내장 함수 len()은 문자열, 리스트, 튜플 등 다양한 자료형에 쓸 수 있지만, 여기서는 문자열에 집중합니다. 사용법은 다음과 같이 간단합니다.

text = "Hello, World!"
length = len(text)
print(length)

실행 결과

13

여기서 len(text)는 변수 text에 들어 있는 문자열 전체의 문자 개수를 반환합니다. print(length)로 그 값을 확인할 수 있습니다. 띄어쓰기, 특수문자, 숫자 모두 한 글자씩 세어집니다.

예를 들어, "파이썬"이라는 문자열의 길이는 다음과 같이 구할 수 있습니다.

korean_text = "파이썬"
print(len(korean_text))

실행 결과

3

한글도 한 글자마다 1로 계산되므로 두 글자는 2, 세 글자는 3이 나옵니다.

문자열 길이 구하기: 코드 흐름 상세 설명

len() 함수의 동작은 매우 직관적이지만, 초보자 입장에서 흐름을 한 번 더 짚어봅니다.

  1. 문자열 변수 생성: 먼저 문자열 데이터를 변수에 담습니다.
  2. len() 함수로 길이 반환: len(문자열) 형태로 원하는 문자열의 길이를 구합니다.
  3. 결과 활용: 반환된 길이 값을 변수에 저장하거나 바로 print()로 출력할 수 있습니다.

예를 들어, 사용자 이름이 5글자 이내인지 확인하는 코드는 다음과 같습니다.

username = "applepie"
if len(username) <= 5:
    print("이름이 너무 짧아요.")
else:
    print("이름이 충분히 깁니다.")

실행 결과

이름이 충분히 깁니다.

이렇게 len() 함수로 나온 값을 조건문에서 바로 사용할 수 있습니다.

실제 사용 예제와 다양한 적용 상황

문자열뿐 아니라 리스트, 튜플, 딕셔너리에도 len()을 쓸 수 있지만, 여기서는 문자열 중심의 예제만 다룹니다.

1. 문자열 길이로 반복 처리하기

문자 하나씩 출력하고 싶을 때 문자열의 길이를 활용할 수 있습니다.

message = "Hi!"
for i in range(len(message)):
    print(f"{i}번째 글자: {message[i]}")

실행 결과

0번째 글자: H
1번째 글자: i
2번째 글자: !

여기서 range(len(message))는 0부터 (문자열 길이-1)까지의 숫자를 만들어, 각 글자에 차례로 접근합니다.

2. 빈 문자열은 길이가 0

아무 글자도 없는 빈 문자열("")의 길이는 0입니다.

empty = ""
print(len(empty))

실행 결과

0

이 특징을 활용해 입력이 비었는지 판별하는 경우도 많습니다.

초보자가 자주 하는 실수와 올바른 len() 사용법

실수 1: len을 함수처럼 쓰지 않기

len은 함수이기 때문에, 괄호 없이 쓰면 오류가 납니다.

잘못된 예:

text = "banana"
length = len
print(length(text))

위 코드는 len을 변수로 저장해버려서, 더 이상 문자열에 쓸 수 없습니다. 아래처럼 바로 len(text)로 사용해야 합니다.

text = "banana"
print(len(text))

실행 결과

6

실수 2: None, 숫자형은 길이를 구할 수 없음

len()은 문자열 등 시퀀스 자료형에만 쓸 수 있습니다. 만약 None이나 정수형(int)에 len()을 쓰면 오류가 납니다.

잘못된 예:

number = 1234
print(len(number))

이 경우 TypeError: object of type 'int' has no len() 같은 에러가 납니다. 반드시 문자열인지 확인해야 합니다.

경계값과 예상 밖 동작: 이모지, 줄바꿈 등

이모지(😊)나 줄바꿈 기호도 한 글자로 취급됩니다.

emoji_text = "안녕😊"
print(len(emoji_text))
newline_text = "a\nb"
print(len(newline_text))

실행 결과

3
3

즉, 눈에 보이지 않는 줄바꿈, 탭도 문자 개수로 포함됨을 기억하세요.

정리와 연습 문제

이 글에서 배운 핵심 내용을 다시 정리합니다.

  • 문자열의 길이는 내장 함수 len()으로 구할 수 있다.
  • 공백, 특수문자, 이모지, 줄바꿈 등도 모두 한 글자 취급된다.
  • 빈 문자열의 길이는 0이며, 정수 등에는 len()을 직접 쓸 수 없다.
  • len()을 함수로 정확하게 사용해야 하며, 괄호 없이 쓰거나 변수로 가리키면 안 된다.

연습 문제

  1. "Data Science!"라는 문자열의 길이를 출력하는 코드를 작성해 보세요.
  2. 사용자에게 이름을 입력받아, 그 이름이 3글자 이하일 때 "이름이 짧습니다"를, 아니면 "이름이 충분히 깁니다"를 출력하는 코드를 작성하세요. (힌트: input()과 len()을 함께 사용해 보세요)
  3. 문자열에서 줄바꿈 문자(\n)가 포함되어 있을 때, 실제 길이를 구해 출력하는 코드를 짜 보세요.

각 문제는 문법 설명과 예제를 참고하여 직접 코드를 작성하며 연습해 보세요.