Python 에서 문자열이 비어 있지 않은지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 다양한 방법을 사용하여 문자열이 비어 있지 않은지 확인하는 방법을 배우게 됩니다. 이 랩은 string_check.py라는 Python 파일을 생성하고 부울 평가 (if string1:) 및 len() 함수 (if len(string1) > 0:) 를 사용하여 문자열에 최소한 하나의 문자가 포함되어 있는지 확인하는 과정을 안내합니다.

스크립트를 실행하여 출력을 관찰함으로써 Python 이 두 가지 접근 방식을 사용하여 비어 있지 않은 문자열과 빈 문자열을 식별하는 방법을 보여줍니다. 이 랩은 이러한 기술을 구현하기 위한 실용적인 예제와 단계별 지침을 제공합니다.

비어 있지 않은 문자열 탐색

이 단계에서는 Python 에서 문자열이 비어 있지 않은지 확인하는 방법을 살펴보겠습니다. 비어 있지 않은 문자열은 단순히 최소한 하나의 문자를 포함하는 문자열입니다. 이 조건을 확인하는 방법에는 여러 가지가 있으며, 가장 일반적이고 효율적인 방법을 다룰 것입니다.

먼저, VS Code 편집기를 사용하여 ~/project 디렉토리에 string_check.py라는 Python 파일을 생성해 보겠습니다.

## ~/project/string_check.py
string1 = "Hello"
string2 = ""

if string1:
    print("string1 is non-empty")
else:
    print("string1 is empty")

if string2:
    print("string2 is non-empty")
else:
    print("string2 is empty")

이 코드에서:

  • "Hello"를 포함하는 string1과 빈 문자열인 string2의 두 문자열을 정의합니다.
  • if string1:if string2: 문을 사용하여 문자열이 비어 있지 않은지 확인합니다. Python 에서 빈 문자열은 부울 컨텍스트에서 False로 평가되고, 비어 있지 않은 문자열은 True로 평가됩니다.

이제 python 명령을 사용하여 스크립트를 실행해 보겠습니다.

python ~/project/string_check.py

다음과 같은 출력을 볼 수 있습니다.

string1 is non-empty
string2 is empty

이는 Python 이 string1을 비어 있지 않은 것으로, string2를 빈 문자열로 올바르게 식별함을 보여줍니다.

문자열이 비어 있지 않은지 확인하는 또 다른 방법은 len() 함수를 사용하는 것입니다. len() 함수는 문자열의 문자 수를 반환합니다. 길이가 0 보다 크면 문자열은 비어 있지 않습니다.

len() 함수를 사용하도록 string_check.py 파일을 수정해 보겠습니다.

## ~/project/string_check.py
string1 = "Hello"
string2 = ""

if len(string1) > 0:
    print("string1 is non-empty")
else:
    print("string1 is empty")

if len(string2) > 0:
    print("string2 is non-empty")
else:
    print("string2 is empty")

스크립트를 다시 실행합니다.

python ~/project/string_check.py

출력은 이전과 동일합니다.

string1 is non-empty
string2 is empty

두 가지 방법 모두 문자열이 비어 있지 않은지 확인하는 데 유효합니다. 첫 번째 방법 (부울 컨텍스트에서 문자열을 직접 사용하는 방법) 은 일반적으로 더 Pythonic 하고 읽기 쉬운 것으로 간주됩니다.

len() > 0 확인

이 단계에서는 문자열이 비어 있지 않은지 확인하기 위해 len() 함수를 사용하는 데 중점을 둡니다. 이전 단계에서 살펴본 바와 같이, len()은 문자열의 문자 수를 반환합니다. 이 값을 사용하여 문자열에 문자가 있는지 명시적으로 확인할 수 있습니다.

~/project 디렉토리의 string_check.py 파일을 수정하여 이를 자세히 살펴보겠습니다. 더 많은 예제를 추가하고 len() > 0 조건을 보다 명시적으로 사용합니다.

## ~/project/string_check.py
string1 = "Python"
string2 = ""
string3 = " "  ## A string containing a single space

print("String 1:", string1)
print("Length of String 1:", len(string1))

print("String 2:", string2)
print("Length of String 2:", len(string2))

print("String 3:", string3)
print("Length of String 3:", len(string3))


if len(string1) > 0:
    print("string1 is non-empty (len() > 0)")
else:
    print("string1 is empty (len() > 0)")

if len(string2) > 0:
    print("string2 is non-empty (len() > 0)")
else:
    print("string2 is empty (len() > 0)")

if len(string3) > 0:
    print("string3 is non-empty (len() > 0)")
else:
    print("string3 is empty (len() > 0)")

이 코드에서:

  • 단일 공백을 포함하는 string3을 추가했습니다. 이는 중요합니다. 왜냐하면 공백만 포함하는 문자열은 부울로 직접 평가하는 경우 (이전 단계에서 수행한 것처럼) Python 에서 여전히 비어 있지 않은 것으로 간주되지만, 길이는 0 보다 크기 때문입니다.
  • len()을 사용하여 각 문자열의 길이를 출력합니다.
  • if len(string) > 0: 조건을 사용하여 문자열의 길이가 0 보다 큰지 명시적으로 확인합니다.

이제 스크립트를 실행합니다.

python ~/project/string_check.py

다음과 같은 출력을 볼 수 있습니다.

String 1: Python
Length of String 1: 6
String 2:
Length of String 2: 0
String 3:
Length of String 3: 1
string1 is non-empty (len() > 0)
string2 is empty (len() > 0)
string3 is non-empty (len() > 0)

보시다시피, len(string3)은 1 을 반환합니다. 왜냐하면 문자열에 공백이 포함되어 있기 때문입니다. 이는 len() > 0이 문자열에 공백을 포함하여 문자가 있는지 여부를 정확하게 반영함을 보여줍니다.

이 방법은 문자열의 길이를 구체적으로 알아야 하고 해당 길이를 기반으로 작업을 수행하려는 경우 유용합니다.

Boolean 평가 사용

이 단계에서는 Python 이 부울 컨텍스트에서 문자열을 평가하는 방법에 대해 자세히 살펴보겠습니다. 앞서 언급했듯이 Python 은 빈 문자열을 False로, 비어 있지 않은 문자열을 True로 처리합니다. 이 동작은 if 문 및 기타 부울 표현식에서 직접 사용할 수 있으므로 코드를 더 간결하고 읽기 쉽게 만들 수 있습니다.

~/project 디렉토리의 string_check.py 파일을 다시 방문하여 이 부울 평가에 집중하도록 수정해 보겠습니다. 다양한 시나리오를 설명하기 위해 더 많은 예제를 추가합니다.

## ~/project/string_check.py
string1 = "Python"
string2 = ""
string3 = "  "  ## A string containing two spaces
string4 = None  ## A None object

print("String 1:", string1)
print("String 2:", string2)
print("String 3:", string3)
print("String 4:", string4)

if string1:
    print("string1 is considered True")
else:
    print("string1 is considered False")

if string2:
    print("string2 is considered True")
else:
    print("string2 is considered False")

if string3:
    print("string3 is considered True")
else:
    print("string3 is considered False")

if string4:
    print("string4 is considered True")
else:
    print("string4 is considered False")

이 코드에서:

  • None 값을 할당받은 string4를 추가했습니다. None은 Python 에서 값의 부재를 나타내는 특수한 값입니다. None도 부울 컨텍스트에서 False로 평가된다는 점에 유의하는 것이 중요합니다.
  • 문자열과 None을 문자열의 길이를 0 과 명시적으로 비교하지 않고 if 문에서 직접 사용합니다.

이제 스크립트를 실행합니다.

python ~/project/string_check.py

다음과 같은 출력을 볼 수 있습니다.

String 1: Python
String 2:
String 3:
String 4: None
string1 is considered True
string2 is considered False
string3 is considered True
string4 is considered False

이 출력은 다음을 보여줍니다.

  • string1("Python") 은 비어 있지 않은 문자열이므로 True로 간주됩니다.
  • string2("") 는 빈 문자열이므로 False로 간주됩니다.
  • string3(" ") 은 비어 있지 않은 문자열 (공백 포함) 이므로 True로 간주됩니다.
  • string4(None) 는 None은 항상 False로 평가되므로 False로 간주됩니다.

부울 평가를 직접 사용하는 것은 Python 에서 빈 문자열 및 None 값을 확인하는 일반적이고 효율적인 방법입니다. 코드를 더 읽기 쉽고 이해하기 쉽게 만듭니다. 그러나 공백만 포함하는 문자열에 유의하십시오. 이 방법을 사용하면 True로 간주됩니다. 문자가 없는 문자열 (공백 포함) 을 특별히 확인해야 하는 경우 len(string.strip()) > 0을 사용하는 것이 더 적절할 수 있습니다.

요약

이 Lab 에서는 Python 에서 문자열이 비어 있지 않은지 확인하는 방법을 살펴보았습니다. string_check.py 파일을 생성하고 비어 있지 않은 문자열과 빈 문자열 두 개를 정의했습니다. 그런 다음, 빈 문자열은 False이고 비어 있지 않은 문자열은 True인 Python 의 부울 평가를 활용하여 if string: 문을 사용하여 문자열이 비어 있지 않은지 확인했습니다.

또한 len() 함수를 사용하는 대체 방법을 시연했습니다. len(string) > 0을 확인하여 문자열에 최소한 하나의 문자가 포함되어 있는지, 따라서 비어 있지 않은지 확인할 수 있습니다. 두 방법 모두 동일한 결과를 얻어 비어 있지 않은 문자열을 식별합니다.