как проверить что строка не пустая python
Программа Python для проверки, является ли строка пустой или нет
Строки Python являются неизменяемыми и, следовательно, имеют более сложную обработку, когда говорят о своих операциях. Обратите внимание, что строка с пробелами на самом деле является пустой строкой, но имеет ненулевой размер. В этой статье также обсуждается эта проблема и пути ее решения.
Давайте рассмотрим различные методы проверки, является ли строка пустой или нет.
Способ № 1: Использование len()
Использование len() является наиболее общим методом для проверки строки нулевой длины. Хотя он игнорирует тот факт, что строка с только пробелами также должна рассматриваться практически как пустая строка, даже если она не равна нулю.
# Python3 код для демонстрации
# проверить, если строка пуста
# используя len ()
# проверка, если строка пуста
if ( len (test_str1) = = 0 ):
if ( len (test_str2) = = 0 ):
Выход :
Способ № 2: Использование not
# Python3 код для демонстрации
# проверить, если строка пуста
# использование не
# проверка, если строка пуста
Выход :
Способ № 3: Использование not + str.strip()
# Python3 код для демонстрации
# проверить, если строка пуста
# используя not + strip ()
# проверка, если строка пуста
if ( not (test_str1 and test_str1.strip())):
if ( not (test_str2 and test_str2.strip())):
Выход :
Способ № 4: Использование not + str.isspace
Работает аналогично вышеуказанному методу и проверяет наличие пробелов в строке. Этот метод более эффективен, потому что strip() требует выполнения операции strip, которая принимает вычислительные нагрузки, если нет. пробелов хорошего числа.
# Python 3 код для демонстрации
# проверить, если строка пуста
# используя not + isspace ()
# проверка, если строка пуста
if ( not (test_str1 and not test_str1.isspace())):
if ( not (test_str2 and not test_str2.isspace())):
7 Быстрых способов проверить, пуста ли строка в Python
Способы, с помощью которых мы можем проверить, является ли строка пустой в Python. Строка, в которой есть пробелы, является пустой строкой, но имеет ненулевой размер.
Вступление
Строки Python являются неизменяемыми, то есть мы можем изменять строки в соответствии с выполняемыми операциями. Манипуляция строками-самая важная функция python. Вы можете манипулировать строкой с помощью многих методов, таких как методы нарезки строк, циклического перебора элементов и методы строк. Но. Иногда мы приходим к ситуации, когда нам нужно проверить, пуста ли строка Python или нет, а список пуст . В этой статье мы обсудим способы проверки того, является ли строка пустой или нет в Python.
7 Различных способов проверить, пуста ли строка или нет
Давайте обсудим некоторые способы, с помощью которых мы можем проверить, является ли строка пустой строкой или нет.
1. Использование метода len()
Мы будем вычислять длину строки с помощью len() в python. Затем мы проверим, если длина строки равна 0, то строка пуста; в противном случае-нет.
Давайте рассмотрим пример для лучшего понимания концепции:
Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Затем мы вычислили длину обеих строк с помощью функции len() в python. Затем мы применили цикл if-else и проверили, если длина строки равна 0, то строка печати пуста, а если она не пуста, то печать не пуста. В len () пробелы не рассматриваются как пустые в строке, что дает вывод как не пустая строка. Наконец, мы напечатали выходные данные обеих строк.
2. Использование оператора not Для Проверки Того, Является Ли Строка Пустой Строкой В Python
Давайте рассмотрим пример для лучшего понимания концепции:
Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Затем мы применили условие if else, в котором мы проверили, если нет в строке, то строка пуста. В противном случае он не пуст. Оператор not также не обрабатывает пробелы как пустую строку, так что выходные данные будут приходить как не пустая строка второй входной строки. Наконец-то мы напечатали результат.
3. Использование функции and operator + strip() для проверки того, является ли строка пустой строкой в python
Иногда мы видим, что пробелы, присутствующие в строке, не рассматриваются как пустые строки. Таким образом, когда мы проверяем пустую строку, мы также можем проверить наличие пробелов с помощью функции strip ().
Давайте рассмотрим пример для лучшего понимания концепции:
Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы применили условие if-else и проверили с помощью функции strip (), что строка пуста или нет. Если условие становится ложным, это означает, что строка пуста, а остальные блоки выполняются. В этой функции пробелы также рассматриваются как пустые строки. Наконец-то мы напечатали результат.
4. Использование функции Strip() только Для Проверки Пустой Строки В Python
Иногда мы видим, что пробелы, присутствующие в строке, не рассматриваются как пустые строки. Таким образом, когда мы проверяем пустую строку, мы также можем проверить наличие пробелов с помощью функции strip ().
Давайте рассмотрим пример для лучшего понимания концепции:
Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы применили условие if else, при котором мы удаляем строки, то есть пробелы удаляются, а затем, если строка становится пустой, она будет пустой строкой. В противном случае строка не будет пустой. Наконец-то мы напечатали результат.
5. Использование not operator + str.isspace()
Он работает так же, как и функция strip (), поскольку проверяет наличие пробелов в полосе. Но функция strip() занимает много времени по сравнению с функцией str. isspace (), потому что strip() должна выполнять операцию strip, которая требует больших вычислительных нагрузок.
Давайте рассмотрим пример для лучшего понимания концепции:
6. Использование метода __eq__
Dunder в основном сообщает методы, которые имеют двойное подчеркивание до и после их имен. Мы также можем проверить пустую строку с помощью метода __eq__.
Давайте рассмотрим пример для лучшего понимания концепции:
Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы взяли метод __eq__. Мы применили данный метод в условии if-else и проверили, пуста ли строка или нет. Наконец-то мы напечатали результат. Этот метод также не рассматривает пробелы как пустые строки.
7. Использование Регулярных Выражений Для Проверки Пустой Строки В Python
Мы можем создать шаблон регулярных выражений, чтобы проверить, является ли данная строка пустой или содержит только пробелы.
Давайте рассмотрим пример для лучшего понимания концепции:
Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы импортировали библиотеку re в python. Затем мы применили условие if-else с заданным форматом, чтобы проверить, является ли строка пустой или нет. Если условие if удовлетворяет, то вывод выводится как пустая строка. В противном случае вывод выводится как не пустая строка. Следовательно, вы можете видеть результат.
Также Читайте: 5 Способов проверить, является ли строка целочисленной в Python
Вывод
В этом уроке мы узнали о концепции проверки того, является ли строка пустой или нет, и содержит ли она только пробелы или нет. Мы подробно объяснили всю концепцию, взяв все способы проверить, является ли строка пустой. Все способы подробно объясняются с помощью примеров. Вы можете использовать любой из методов, которые вам нравятся, в соответствии с требованиями вашей программы или проекта.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Самый элегантный способ проверить, является ли строка пустой в Python?
Есть ли в Python что-то вроде пустой строковой переменной, где вы можете сделать:
Независимо от того, какой самый элегантный способ проверить наличие пустых строковых значений? Я нахожу жесткое кодирование «» каждый раз для проверки пустой строки не таким хорошим.
Пустые строки «ложные» что означает, что они считаются ложными в логическом контексте, так что вы можете просто сделать это:
Для последовательностей (строк, списков, кортежей) используйте тот факт, что пустые последовательности являются ложными.
Так что вы должны использовать:
Наиболее элегантный способ, вероятно, состоит в том, чтобы просто проверить, является ли он истинным или ложным, например:
Тем не менее, вы можете удалить пустое пространство, потому что:
Вы, вероятно, должны быть немного более явными в этом, однако, если вы точно не знаете, что эта строка прошла какую-то проверку и является строкой, которая может быть протестирована таким образом.
Я бы проверил единство перед тем, как раздеться Кроме того, я бы использовал тот факт, что пустые строки являются ложными (или ложными). Этот подход похож на Apache StringUtils.isBlank или Guava Strings.isNullOrEmpty
Это то, что я хотел бы использовать, чтобы проверить, является ли строка None OR Пусто OR Пусто:
И полная противоположность проверке, не является ли строка None NOR Пусто NOR Пусто:
Более краткие формы приведенного выше кода:
Однажды я написал что-то похожее на ответ Бартека и вдохновил javascript:
Проверить пустую или пустую строку (более короткий путь):
Я не заметил ЭТОЙ конкретной комбинации ни в одном из ответов. Я искал
в ответах до публикации.
Персонаж за характером Я думаю, что это хорошее решение.
Я отметил, что None вступил в дискуссию, поэтому, добавив это и сжимая дальше, мы получаем:
Я нахожу жесткое кодирование (sic) «» каждый раз для проверки пустой строки не таким хорошим.
Чистый код подход
Что вы должны сделать, это сравнить с описательным именем переменной.
Описательные имена переменных
Пример простого поля формы
Вы создаете форму, где пользователь может вводить значения. Вы хотите проверить, написал ли пользователь что-то или нет.
Хорошее имя переменной может быть not_filled_in
Это делает код очень читабельным
Пример тщательного разбора CSV
Вы анализируете файлы CSV и хотите, чтобы пустая строка была проанализирована как None
(Поскольку CSV полностью основан на тексте, он не может представлять None без использования предопределенных ключевых слов)
Хорошее имя переменной может быть CSV_NONE
Это позволяет легко изменять и адаптировать код, если у вас есть новый CSV-файл, представляющий None со строкой, отличной от «»
Там нет вопросов о том, если этот кусок кода является правильным. Довольно ясно, что он делает то, что должен делать.
Первый вопрос здесь: почему пустая строка заслуживает особого отношения?
Это потому, что он смешивает бизнес-логику (какое значение CSV должно быть None ) с реализацией кода (с чем мы на самом деле сравниваем)
Должно быть разделение проблем между ними.
Как насчет этого? Возможно, это не «самый элегантный», но кажется довольно полным и ясным:
Однако, если вы должны обрабатывать None и (пробелы) как «пустые» строки, вот лучший способ:
Единственный действительно надежный способ сделать это заключается в следующем:
У всех других решений есть возможные проблемы и крайние случаи, когда проверка может потерпеть неудачу.
myString is «» и «» is myString эквивалентны. Они оба потерпят неудачу, если myString на самом деле не строка, а подкласс строки (оба вернут False ). Кроме того, поскольку они являются проверками идентичности, единственная причина, по которой они работают, заключается в том, что Python использует String Pooling (также называемый String Internment), который использует один и тот же экземпляр строки, если он интернирован (см. Здесь: Почему при сравнении строк используется либо ‘==’ или ‘is’ иногда дают другой результат? ). И «» интернирован с самого начала в CPython
Большая проблема с проверкой идентичности состоит в том, что String Internment (насколько я мог найти) не стандартизирует, какие строки интернированы. Это означает, что теоретически «» не является обязательным, и это зависит от реализации.
Это не только теоретическая работа, но на самом деле она может иметь отношение к реальному использованию, так как я уже видел, как фреймворки и библиотеки делят на подклассы str и использование myString is «» может привести к неверному выводу.
Кроме того, сравнение строк с использованием is в целом является довольно злой ловушкой, поскольку иногда она будет работать правильно, но не в других случаях, поскольку объединение строк следует довольно странным правилам.
Тем не менее, в большинстве случаев все упомянутые решения будут работать правильно. Это пост в основном академическая работа.
Как проверить, пуста ли строка?
Есть ли в Python что-то вроде пустой строковой переменной, где вы можете сделать:
Независимо от того, какой самый элегантный способ проверить наличие пустых строковых значений? Я нахожу жесткое кодирование «» каждый раз для проверки пустой строки не таким хорошим.
25 ответов
Пустые строки являются «ложными», что означает, что они считаются false в логическом контексте, так что вы можете просто сделать это:
Другим простым способом может быть определение простой функции:
Я бы проверил единство перед тем, как раздеться. Кроме того, я бы использовал тот факт, что пустые строки являются ложными (или ложными). Этот подход подобен Apache StringUtils.isBlank или Strings.isNullOrEmpty Гуавы
Это то, что я хотел бы использовать, чтобы проверить, является ли строка None, OR Empty или Blank:
И полная противоположность проверке, не является ли строка None NOR Empty NOR Blank:
Более краткие формы приведенного выше кода.
Как написано выше, но с ошибкой.
Для тех, кто ожидает такого поведения, как apache StringUtils.isBlank или Guava Strings.isNullOrEmpty:
В случае, если это кому-то пригодится, я разработал быструю функцию замены пустых строк на N / A в списках списков (python 2).
Это полезно для публикации списков списков в базе данных mysql, которая не принимает пробелы для определенных полей (поля, помеченные как NN в схеме. В моем случае это произошло из-за составного первичного ключа).
Я провел некоторые эксперименты со строками, такими как », », ‘\ n’ и т. Д. Я хочу, чтобы isNotWhitespace был True, если и только если переменная foo является строкой, по крайней мере, с одним непробельным символом. Я использую Python 3.6. Вот чем я закончил:
Оберните это в определение метода, если хотите.
Наиболее элегантный способ, вероятно, состоит в том, чтобы просто проверить, является ли он истинным или ложным, например:
Тем не менее, вы можете удалить пустое пространство, потому что:
Вы, вероятно, должны быть немного более явными в этом, однако, если вы точно не знаете, что эта строка прошла какую-то проверку и является строкой, которая может быть протестирована таким образом.
Если вы просто используете
Однако, если вы добавите простое условие в ваш скрипт, разница будет:
Проверить пустую или пустую строку (более короткий путь):
Однажды я написал что-то похожее на ответ Бартека и вдохновил javascript:
Я нахожу это элегантным, так как он проверяет, что это строка, и проверяет ее длину:
Однако, если вы должны рассматривать None и (пробелы) как «пустые» строки, вот лучший способ:
Отвечает требованиям @rouble, не нарушая ожидаемое поведение bool строк.
Как насчет этого? Возможно, это не «самый элегантный», но кажется довольно полным и ясным:
Для последовательностей (строк, списков, кортежей) используйте тот факт, что пустые последовательности являются ложными.
Итак, вы должны использовать:
Я нахожу жесткое кодирование (sic) «» каждый раз для проверки пустой строки не таким хорошим.
Чистый код подход
Делать это: foo == «» очень плохая практика. «» магическое значение. Вы никогда не должны проверять магические значения (более известные как магические числа)
Что вы должны сделать, это сравнить с описательным именем переменной.
Описательные имена переменных
Прежде чем идти и делать empty_string = «» и подумать, что у вас есть отличное имя переменной для сравнения. Это не то, что означает «описательное имя переменной».
Пример простого поля формы
Вы создаете форму, где пользователь может вводить значения. Вы хотите проверить, написал ли пользователь что-то или нет.
Хорошее имя переменной может быть not_filled_in
Это делает код очень читабельным
Пример тщательного разбора CSV
Вы анализируете файлы CSV и хотите, чтобы пустая строка была проанализирована как None
(Поскольку CSV полностью основан на тексте, он не может представлять None без использования предопределенных ключевых слов)
Хорошее имя переменной может быть CSV_NONE
Это позволяет легко изменять и адаптировать код, если у вас есть новый CSV-файл, представляющий None с другой строкой, отличной от «»
Там нет вопросов о том, если этот кусок кода является правильным. Довольно ясно, что он делает то, что должен делать.
Первый вопрос здесь: почему пустая строка заслуживает особого отношения?
Это потому, что он смешивает бизнес-логику (какое значение CSV должно быть None ) с реализацией кода (с чем мы на самом деле сравниваем)
Единственный действительно надежный способ сделать это заключается в следующем:
У всех других решений есть возможные проблемы и крайние случаи, когда проверка может потерпеть неудачу.
myString is «» и «» is myString эквивалентны. Они оба потерпят неудачу, если myString на самом деле не строка, а подкласс строки (оба вернут False ). Кроме того, поскольку они являются проверками идентичности, единственная причина, по которой они работают, заключается в том, что Python использует String Pooling (также называемый String Internment), который использует тот же экземпляр строки, если он интернирован (см. Здесь: Почему сравнение строк с использованием ‘==’ или ‘is’ иногда приводит к другой результат?). И «» интернирован с самого начала в CPython
Большая проблема с проверкой идентичности состоит в том, что String Internment (насколько я мог найти) не стандартизирует, какие строки интернированы. Это означает, что теоретически «» необязательно интернироваться, и это зависит от реализации.
Это не только теоретическая работа, но на самом деле может иметь отношение к реальному использованию, так как я уже видел фреймворки и библиотеки, создающие подклассы str ранее, и использование myString is «» может вернуть неправильный вывод.
Кроме того, сравнение строк с использованием is в целом является довольно злой ловушкой, поскольку иногда она будет работать правильно, но не в других случаях, поскольку объединение строк следует довольно странным правилам.
Тем не менее, в большинстве случаев все упомянутые решения будут работать правильно. Это пост в основном академическая работа.
Строки в python 3: методы, функции, форматирование
В уроке по присвоению типа переменной в Python вы могли узнать, как определять строки: объекты, состоящие из последовательности символьных данных. Обработка строк неотъемлемая частью программирования на python. Крайне редко приложение, не использует строковые типы данных.
Из этого урока вы узнаете: Python предоставляет большую коллекцию операторов, функций и методов для работы со строками. Когда вы закончите изучение этой документации, узнаете, как получить доступ и извлечь часть строки, а также познакомитесь с методами, которые доступны для манипулирования и изменения строковых данных.
Ниже рассмотрим операторы, методы и функции, доступные для работы с текстом.
Строковые операторы
Оператор сложения строк +
+ — оператор конкатенации строк. Он возвращает строку, состоящую из других строк, как показано здесь:
Оператор умножения строк *
* — оператор создает несколько копий строки. Если s это строка, а n целое число, любое из следующих выражений возвращает строку, состоящую из n объединенных копий s :
Вот примеры умножения строк:
Значение множителя n должно быть целым положительным числом. Оно может быть нулем или отрицательным, но этом случае результатом будет пустая строка:
Оператор принадлежности подстроки in
Встроенные функции строк в python
Python предоставляет множество функций, которые встроены в интерпретатор. Вот несколько, которые работают со строками:
Функция | Описание |
---|---|
chr() | Преобразует целое число в символ |
ord() | Преобразует символ в целое число |
len() | Возвращает длину строки |
str() | Изменяет тип объекта на string |
Более подробно о них ниже.
Функция ord(c) возвращает числовое значение для заданного символа.
На базовом уровне компьютеры хранят всю информацию в виде цифр. Для представления символьных данных используется схема перевода, которая содержит каждый символ с его репрезентативным номером.
ASCII прекрасен, но есть много других языков в мире, которые часто встречаются. Полный набор символов, которые потенциально могут быть представлены в коде, намного больше обычных латинских букв, цифр и символом.
Unicode — это современный стандарт, который пытается предоставить числовой код для всех возможных символов, на всех возможных языках, на каждой возможной платформе. Python 3 поддерживает Unicode, в том числе позволяет использовать символы Unicode в строках.
Функция ord() также возвращает числовые значения для символов Юникода:
Функция chr(n) возвращает символьное значение для данного целого числа.
chr() также обрабатывает символы Юникода:
Функция len(s) возвращает длину строки.
len(s) возвращает количество символов в строке s :
Функция str(obj) возвращает строковое представление объекта.
Практически любой объект в Python может быть представлен как строка. str(obj) возвращает строковое представление объекта obj :
Индексация строк
Часто в языках программирования, отдельные элементы в упорядоченном наборе данных могут быть доступны с помощью числового индекса или ключа. Этот процесс называется индексация.
Например, схематическое представление индексов строки ‘foobar’ выглядит следующим образом:
Отдельные символы доступны по индексу следующим образом:
Вот несколько примеров отрицательного индексирования:
Срезы строк
Если пропустить первый индекс, срез начинается с начала строки. Таким образом, s[:m] = s[0:m] :
Для любой строки s и любого целого n числа ( 0 ≤ n ≤ len(s) ), s[:n] + s[n:] будет s :
Пропуск обоих индексов возвращает исходную строку. Это не копия, это ссылка на исходную строку:
Если первый индекс в срезе больше или равен второму индексу, Python возвращает пустую строку. Это еще один не очевидный способ сгенерировать пустую строку, если вы его искали:
Отрицательные индексы можно использовать и со срезами. Вот пример кода Python:
Шаг для среза строки
Существует еще один вариант синтаксиса среза, о котором стоит упомянуть. Добавление дополнительного : и третьего индекса означает шаг, который указывает, сколько символов следует пропустить после извлечения каждого символа в срезе.
Иллюстративный код показан здесь:
Как и в случае с простым срезом, первый и второй индексы могут быть пропущены:
Вы также можете указать отрицательное значение шага, в этом случае Python идет с конца строки. Начальный/первый индекс должен быть больше конечного/второго индекса:
В приведенном выше примере, 5:0:-2 означает «начать с последнего символа и делать два шага назад, но не включая первый символ.”
Когда вы идете назад, если первый и второй индексы пропущены, значения по умолчанию применяются так: первый индекс — конец строки, а второй индекс — начало. Вот пример:
Это общая парадигма для разворота (reverse) строки:
Форматирование строки
В Python версии 3.6 был представлен новый способ форматирования строк. Эта функция официально названа литералом отформатированной строки, но обычно упоминается как f-string.
Возможности форматирования строк огромны и не будут подробно описана здесь.
Одной простой особенностью f-строк, которые вы можете начать использовать сразу, является интерполяция переменной. Вы можете указать имя переменной непосредственно в f-строковом литерале ( f’string’ ), и python заменит имя соответствующим значением.
Но это громоздко. Чтобы выполнить то же самое с помощью f-строки:
Код с использованием f-string, приведенный ниже выглядит намного чище:
Любой из трех типов кавычек в python можно использовать для f-строки:
Изменение строк
Строки — один из типов данных, которые Python считает неизменяемыми, что означает невозможность их изменять. Как вы ниже увидите, python дает возможность изменять (заменять и перезаписывать) строки.
Такой синтаксис приведет к ошибке TypeError :
На самом деле нет особой необходимости изменять строки. Обычно вы можете легко сгенерировать копию исходной строки с необходимыми изменениями. Есть минимум 2 способа сделать это в python. Вот первый:
Есть встроенный метод string.replace(x, y) :
Читайте дальше о встроенных методах строк!
Встроенные методы строк в python
В руководстве по типам переменных в python вы узнали, что Python — это объектно-ориентированный язык. Каждый элемент данных в программе python является объектом.
Вы также знакомы с функциями: самостоятельными блоками кода, которые вы можете вызывать для выполнения определенных задач.
Методы похожи на функции. Метод — специализированный тип вызываемой процедуры, тесно связанный с объектом. Как и функция, метод вызывается для выполнения отдельной задачи, но он вызывается только вместе с определенным объектом и знает о нем во время выполнения.
Синтаксис для вызова метода объекта выглядит следующим образом:
Вы узнаете намного больше об определении и вызове методов позже в статьях про объектно-ориентированное программирование. Сейчас цель усвоить часто используемые встроенные методы, которые есть в python для работы со строками.
В приведенных методах аргументы, указанные в квадратных скобках ( [] ), являются необязательными.
Изменение регистра строки
Методы этой группы выполняют преобразование регистра строки.
string.capitalize() приводит первую букву в верхний регистр, остальные в нижний.
s.capitalize() возвращает копию s с первым символом, преобразованным в верхний регистр, и остальными символами, преобразованными в нижний регистр:
Не алфавитные символы не изменяются:
string.lower() преобразует все буквенные символы в строчные.
s.lower() возвращает копию s со всеми буквенными символами, преобразованными в нижний регистр:
string.swapcase() меняет регистр буквенных символов на противоположный.
s.swapcase() возвращает копию s с заглавными буквенными символами, преобразованными в строчные и наоборот:
string.title() преобразует первые буквы всех слов в заглавные
s.title() возвращает копию, s в которой первая буква каждого слова преобразуется в верхний регистр, а остальные буквы — в нижний регистр:
Этот метод использует довольно простой алгоритм. Он не пытается различить важные и неважные слова и не обрабатывает апострофы, имена или аббревиатуры:
string.upper() преобразует все буквенные символы в заглавные.
s.upper() возвращает копию s со всеми буквенными символами в верхнем регистре:
Найти и заменить подстроку в строке
Эти методы предоставляют различные способы поиска в целевой строке указанной подстроки.
string.count([, [, ]]) подсчитывает количество вхождений подстроки в строку.
s.count() возвращает количество точных вхождений подстроки в s :
Количество вхождений изменится, если указать и :
string.endswith( [, [, ]]) определяет, заканчивается ли строка заданной подстрокой.
s.endswith( ) возвращает, True если s заканчивается указанным и False если нет:
string.find([, [, ]]) ищет в строке заданную подстроку.
s.find() возвращает первый индекс в s который соответствует началу строки :
string.index([, [, ]]) ищет в строке заданную подстроку.
string.rfind([, [, ]]) ищет в строке заданную подстроку, начиная с конца.
string.rindex([, [, ]]) ищет в строке заданную подстроку, начиная с конца.
Классификация строк
Методы в этой группе классифицируют строку на основе символов, которые она содержит.
string.isalnum() определяет, состоит ли строка из букв и цифр.
string.isalpha() определяет, состоит ли строка только из букв.
string.isdigit() определяет, состоит ли строка из цифр (проверка на число).
s.digit() возвращает True когда строка s не пустая и все ее символы являются цифрами, а в False если нет:
string.isidentifier() определяет, является ли строка допустимым идентификатором Python.
string.islower() определяет, являются ли буквенные символы строки строчными.
string.isprintable() определяет, состоит ли строка только из печатаемых символов.
s.isprintable() возвращает, True если строка s пустая или все буквенные символы которые она содержит можно вывести на экран. Возвращает, False если s содержит хотя бы один специальный символ. Не алфавитные символы игнорируются:
string.isspace() определяет, состоит ли строка только из пробельных символов.
Тем не менее есть несколько символов ASCII, которые считаются пробелами. И если учитывать символы Юникода, их еще больше:
‘\f’ и ‘\r’ являются escape-последовательностями для символов ASCII; ‘\u2005’ это escape-последовательность для Unicode.
string.istitle() определяет, начинаются ли слова строки с заглавной буквы.
string.isupper() определяет, являются ли буквенные символы строки заглавными.
Выравнивание строк, отступы
Методы в этой группе влияют на вывод строки.
string.center( [, ]) выравнивает строку по центру.
string.expandtabs(tabsize=8) заменяет табуляции на пробелы
s.expandtabs() заменяет каждый символ табуляции ( ‘\t’ ) пробелами. По умолчанию табуляция заменяются на 8 пробелов:
tabsize необязательный параметр, задающий количество пробелов:
string.ljust( [, ]) выравнивание по левому краю строки в поле.
string.lstrip([ ]) обрезает пробельные символы слева
s.lstrip() возвращает копию s в которой все пробельные символы с левого края удалены:
string.replace(
- , [, ]) заменяет вхождения подстроки в строке.
s.replace(
- , ) возвращает копию s где все вхождения подстроки
- , заменены на :
string.rjust( [, ]) выравнивание по правому краю строки в поле.
string.rstrip([ ]) обрезает пробельные символы справа
s.rstrip() возвращает копию s без пробельных символов, удаленных с правого края:
string.strip([ ]) удаляет символы с левого и правого края строки.
Важно: Когда возвращаемое значение метода является другой строкой, как это часто бывает, методы можно вызывать последовательно:
string.zfill( ) дополняет строку нулями слева.
s.zfill( ) возвращает копию s дополненную ‘0’ слева для достижения длины строки указанной в :
Если s содержит знак перед цифрами, он остается слева строки:
.zfill() наиболее полезен для строковых представлений чисел, но python с удовольствием заполнит строку нулями, даже если в ней нет чисел:
Методы преобразование строки в список
Методы в этой группе преобразовывают строку в другой тип данных и наоборот. Эти методы возвращают или принимают итерируемые объекты — термин Python для последовательного набора объектов.
Многие из этих методов возвращают либо список, либо кортеж. Это два похожих типа данных, которые являются прототипами примеров итераций в python. Список заключен в квадратные скобки ( [] ), а кортеж заключен в простые ( () ).
Теперь давайте посмотрим на последнюю группу строковых методов.
string.join( ) объединяет список в строку.
В результате получается одна строка, состоящая из списка объектов, разделенных запятыми.
В следующем примере указывается как одно строковое значение. Когда строковое значение используется в качестве итерируемого, оно интерпретируется как список отдельных символов строки:
Это можно исправить так:
string.partition( ) делит строку на основе разделителя.
s.rpartition( ) делит строку на основе разделителя, начиная с конца.
string.rsplit(sep=None, maxsplit=-1) делит строку на список из подстрок.
Без аргументов s.rsplit() делит s на подстроки, разделенные любой последовательностью пробелов, и возвращает список:
Если указан, он используется в качестве разделителя:
Это не работает, когда не указан. В этом случае последовательные пробельные символы объединяются в один разделитель, и результирующий список никогда не будет содержать пустых строк:
string.split(sep=None, maxsplit=-1) делит строку на список из подстрок.
string.splitlines([ ]) делит текст на список строк.
s.splitlines() делит s на строки и возвращает их в списке. Любой из следующих символов или последовательностей символов считается границей строки:
Разделитель | Значение |
---|---|
\n | Новая строка |
\r | Возврат каретки |
\r\n | Возврат каретки + перевод строки |
\v или же \x0b | Таблицы строк |
\f или же \x0c | Подача формы |
\x1c | Разделитель файлов |
\x1d | Разделитель групп |
\x1e | Разделитель записей |
\x85 | Следующая строка |
\u2028 | Новая строка (Unicode) |
\u2029 | Новый абзац (Unicode) |
Вот пример использования нескольких различных разделителей строк:
Если в строке присутствуют последовательные символы границы строки, они появятся в списке результатов, как пустые строки:
Заключение
В этом руководстве было подробно рассмотрено множество различных механизмов, которые Python предоставляет для работы со строками, включая операторы, встроенные функции, индексирование, срезы и встроенные методы.
Python есть другие встроенные типы данных. В этих урока вы изучите два наиболее часто используемых: