Как проверить, является ли строка непустой в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии (LabEx) вы научитесь проверять, является ли строка непустой в Python с использованием различных методов. В рамках лабораторной работы вас будут сопровождать по созданию файла Python с именем string_check.py и использованию булевой оценки (if string1:) и функции len() (if len(string1) > 0:) для определения, содержит ли строка хотя бы один символ.

Вы выполните скрипт, чтобы наблюдать за выводом, демонстрирующим, как Python определяет непустые и пустые строки с использованием обоих подходов. В лабораторной работе представлены практические примеры и пошаговые инструкции по реализации этих методов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/strings -.-> lab-559579{{"Как проверить, является ли строка непустой в Python"}} python/booleans -.-> lab-559579{{"Как проверить, является ли строка непустой в Python"}} python/conditional_statements -.-> lab-559579{{"Как проверить, является ли строка непустой в Python"}} python/build_in_functions -.-> lab-559579{{"Как проверить, является ли строка непустой в Python"}} end

Исследование непустых строк

На этом этапе мы узнаем, как определить, является ли строка непустой в Python. Непустая строка - это просто строка, содержащая хотя бы один символ. Существует несколько способов проверить это условие, и мы рассмотрим самые распространенные и эффективные методы.

Сначала создадим файл Python с именем string_check.py в каталоге ~/project с помощью редактора VS Code.

## ~/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")

В этом коде:

  • Мы определяем две строки: string1, которая содержит "Hello", и 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, строка непустая.

Изменим файл string_check.py, чтобы использовать функцию len():

## ~/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

Оба метода являются допустимыми для проверки, является ли строка непустой. Первый метод (использование строки непосредственно в булевом контексте) обычно считается более "питоническим" и читаемым.

Проверка условия len() > 0

На этом этапе мы сосредоточимся на использовании функции len() для определения, является ли строка непустой. Как мы видели на предыдущем этапе, функция len() возвращает количество символов в строке. Мы можем использовать это значение, чтобы явно проверить, содержит ли строка какие-либо символы.

Давайте изменим файл string_check.py в каталоге ~/project, чтобы более подробно рассмотреть этот метод. Мы добавим больше примеров и будем явно использовать условие 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 точно отражает, содержит ли строка какие-либо символы, включая пробелы.

Этот метод полезен, когда вам нужно конкретно узнать длину строки и выполнить действия на основе этой длины.

Использование булевой оценки

На этом этапе мы более подробно рассмотрим, как Python оценивает строки в булевом контексте. Как упоминалось ранее, Python рассматривает пустые строки как False, а непустые строки - как True. Это поведение можно использовать напрямую в операторах if и других булевых выражениях, делая ваш код более компактным и читаемым.

Давайте вернемся к файлу string_check.py в каталоге ~/project и изменим его, чтобы сосредоточиться на этой булевой оценке. Мы добавим больше примеров, чтобы проиллюстрировать различные сценарии.

## ~/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")

В этом коде:

  • Мы добавили string4, которой присвоено значение None. None - это специальное значение в Python, которое представляет отсутствие значения. Важно отметить, что None также оценивается как False в булевом контексте.
  • Мы напрямую используем строки и None в операторах if без явного сравнения их длин с 0.

Теперь запустим скрипт:

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) считается False, так как None всегда оценивается как False.

Прямое использование булевой оценки - это распространенный и эффективный способ проверки на пустые строки и значения None в Python. Это делает ваш код более читаемым и легким для понимания. Однако будьте осторожны с строками, содержащими только пробелы, так как они будут считаться True с использованием этого метода. Если вам нужно конкретно проверить строки без символов (включая пробелы), использование len(string.strip()) > 0 может быть более подходящим.

Резюме

В этом практическом занятии (лабораторной работе) мы изучили, как определить, является ли строка непустой в Python. Мы создали файл string_check.py и определили две строки: одну непустую и одну пустую. Затем мы использовали оператор if string:, основываясь на булевой оценке в Python, где пустая строка считается False, а непустая - True, чтобы проверить, являются ли строки непустыми.

Мы также продемонстрировали альтернативный метод с использованием функции len(). Проверяя условие len(string) > 0, мы можем определить, содержит ли строка хотя бы один символ и, следовательно, является ли она непустой. Оба метода дают одинаковый результат - определяют непустые строки.