Введение
В этом лабораторном занятии (LabEx) вы научитесь проверять, является ли строка непустой в Python с использованием различных методов. В рамках лабораторной работы вас будут сопровождать по созданию файла Python с именем string_check.py и использованию булевой оценки (if string1:) и функции len() (if len(string1) > 0:) для определения, содержит ли строка хотя бы один символ.
Вы выполните скрипт, чтобы наблюдать за выводом, демонстрирующим, как Python определяет непустые и пустые строки с использованием обоих подходов. В лабораторной работе представлены практические примеры и пошаговые инструкции по реализации этих методов.
Изучение непустых строк
На этом этапе мы узнаем, как определить, является ли строка непустой в 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, мы можем определить, содержит ли строка хотя бы один символ и, следовательно, является ли она непустой. Оба метода дают одинаковый результат - определяют непустые строки.



