이 글에서는 주어진 문자열이 비어 있는지 확인하는 문제의 해결 방법과 접근 방식을 알아봅니다.
문제 정의
문자열이 입력으로 주어졌을 때, 해당 문자열이 비어 있는지 여부를 판별해야 합니다.
파이썬에서 문자열은 불변(immutable) 자료형이므로, 문자열에 어떤 연산을 수행할 때든 이러한 특성을 염두에 두고 다루어야 합니다.
이 문제는 크게 두 가지 방법으로 해결할 수 있습니다.
len()함수 사용- 동등 비교 연산자(
==) 사용
방법 1: len() 함수 사용하기
len() 함수는 문자열의 길이를 반환합니다. 빈 문자열의 길이는 0이므로, 길이가 0인지 검사하면 문자열이 비어 있는지 확인할 수 있습니다.
예제 코드
test_str1 = ""
test_str2 = "@@@"
if(len(test_str2) == len(test_str1)):
print("Yes")
else:
print("No")
실행 결과
No
위 예제에서 test_str1은 빈 문자열이고, test_str2는 내용이 있는 문자열입니다. 두 문자열의 길이가 서로 다르기 때문에 "No"가 출력됩니다.
방법 2: 동등 비교 연산자 사용하기
비교 연산자 ==를 사용해 문자열을 빈 문자열과 직접 비교하는 방법도 있습니다. 의도가 코드에 그대로 드러나기 때문에 가독성 면에서 더 유리합니다.
예제 코드
test_str1 = ""
test_str2 = "@@@"
if(test_str2 == test_str1):
print("Yes")
else:
print("No")
실행 결과
No
test_str2는 빈 문자열이 아니므로 조건식이 거짓이 되어 "No"가 출력됩니다.
추가 팁: 더 파이썬다운 방법
실무에서는 문자열의 진릿값(truthiness)을 활용하는 것이 가장 간결합니다. 파이썬에서는 빈 문자열이 거짓(False)으로 평가되기 때문입니다.
if not test_str2:
print("빈 문자열입니다")
else:
print("내용이 있습니다")
단, 공백(" ")만 포함된 문자열은 빈 문자열로 취급되지 않으므로 주의해야 합니다. 앞뒤 공백까지 제거하고 검사하려면 strip() 메서드를 함께 사용하면 됩니다.
결론
이 글에서는 len() 함수와 동등 비교 연산자를 사용해 문자열이 비어 있는지 확인하는 두 가지 방법을 살펴보았습니다. 상황에 맞는 방법을 선택해 사용하면 되며, 더 간결한 코드를 원한다면 문자열의 진릿값을 활용하는 방법도 훌륭한 선택입니다.