Как узнать номер строки в файле python

Обновлено: 05.07.2024

Строка считывается со стандартного ввода функцией input() . Напомним, что для двух строк определена операция сложения (конкатенации), также определена операция умножения строки на число.

Строка состоит из последовательности символов. Узнать количество символов (длину строки) можно при помощи функции len .

Любой другой объект в Питоне можно перевести к строке, которая ему соответствует. Для этого нужно вызвать функцию str() , передав ей в качестве параметра объект, переводимый в строку.

На самом деле каждая строка, с точки зрения Питона, — это объект класса str. Чтобы получить по объекту другой объект другого класса, как-то ему соответствующий, можно использовать функцию приведения. Имя этой функции совпадает с именем класса, к которому мы приводим объект. (Для знатоков: эта функция — это конструктор объектов данного класса.) Пример: int — класс для целых чисел. Перевод строки в число осуществляется функцией int() .

2. Срезы (slices)

Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.

Есть три формы срезов. Самая простая форма среза: взятие одного символа строки, а именно, S[i] — это срез, состоящий из одного символа, который имеет номер i . При этом считается, что нумерация начинается с числа 0. То есть если , то , , , , .

Заметим, что в Питоне нет отдельного типа для символов строки. Каждый объект, который получается в результате среза S[i] — это тоже строка типа str.

Номера символов в строке (а также в других структурах данных: списках, кортежах) называются индексом.

Если указать отрицательное значение индекса, то номер будет отсчитываться с конца, начиная с номера -1 . То есть , , , , .

Или в виде таблицы:

Строка S H e l l o
Индекс S[0] S[1] S[2] S[3] S[4]
Индекс S[-5] S[-4] S[-3] S[-2] S[-1]

Если же номер символа в срезе строки S больше либо равен len(S) , или меньше, чем -len(S) , то при обращении к этому символу строки произойдет ошибка IndexError: string index out of range .

Срез с двумя параметрами: S[a:b] возвращает подстроку из b - a символов, начиная с символа c индексом a , то есть до символа с индексом b , не включая его. Например, S[1:4] == 'ell' , то же самое получится если написать S[-4:-1] . Можно использовать как положительные, так и отрицательные индексы в одном срезе, например, S[1:-1] — это строка без первого и последнего символа (срез начинается с символа с индексом 1 и заканчиватеся индексом -1, не включая его).

При использовании такой формы среза ошибки IndexError никогда не возникает. Например, срез S[1:5] вернет строку 'ello' , таким же будет результат, если сделать второй индекс очень большим, например, S[1:100] (если в строке не более 100 символов).

Если опустить второй параметр (но поставить двоеточие), то срез берется до конца строки. Например, чтобы удалить из строки первый символ (его индекс равен 0), можно взять срез S[1:] . Аналогично если опустить первый параметр, то можно взять срез от начала строки. То есть удалить из строки последний символ можно при помощи среза S[:-1] . Срез S[:] совпадает с самой строкой S .

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

На самом деле в питоне нет и переменных. Есть лишь имена, которые связаны с какими-нибудь объектами. Можно сначала связать имя с одним объектом, а потом — с другим. Можно несколько имён связать с одним и тем же объектом.

Если задать срез с тремя параметрами S[a:b:d] , то третий параметр задает шаг, как в случае с функцией range , то есть будут взяты символы с индексами a , , и т. д. При задании значения третьего параметра, равному 2, в срез попадет кажый второй символ, а если взять значение среза, равное -1 , то символы будут идти в обратном порядке. Например, можно перевернуть строку срезом S[::-1] .

Обратите внимание на то, как похож третий параметр среза на третий параметр функции range():

3. Методы

Метод — это функция, применяемая к объекту, в данном случае — к строке. Метод вызывается в виде Имя_объекта.Имя_метода(параметры) . Например, S.find("e") — это применение к строке S метода find с одним параметром "e" .

3.1. Методы find и rfind

Метод find находит в данной строке (к которой применяется метод) данную подстроку (которая передается в качестве параметра). Функция возвращает индекс первого вхождения искомой подстроки. Если же подстрока не найдена, то метод возвращает значение -1.

Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).

Если вызвать метод find с тремя параметрами S.find(T, a, b) , то поиск будет осуществляться в срезе S[a:b] . Если указать только два параметра S.find(T, a) , то поиск будет осуществляться в срезе S[a:] , то есть начиная с символа с индексом a и до конца строки. Метод S.find(T, a, b) возращает индекс в строке S , а не индекс относительно среза.

3.2. Метод replace

Метод replace заменяет все вхождения одной строки на другую. Формат: S.replace(old, new) — заменить в строке S все вхождения подстроки old на подстроку new . Пример:

Если методу replace задать еще один параметр: S.replace(old, new, count) , то заменены будут не все вхождения, а только не больше, чем первые count из них.

3.3. Метод count

Подсчитывает количество вхождений одной строки в другую строку. Простейшая форма вызова S.count(T) возвращает число вхождений строки T внутри строки S . При этом подсчитываются только непересекающиеся вхождения, например:

При указании трех параметров , будет выполнен подсчет числа вхождений строки T в срезе S[a:b] .

мне нужно получить номер строки в текстовом файле. Фраза может быть:

мне нужно открыть файл, найти в нем эту фразу и распечатать номер строки.

Я использую Python 2.6 в Windows XP

Вот Что У Меня Есть:

это не домашнее задание, это часть проекта, над которыми я работаю. Я даже не знаю, как узнать номер телефона.

EDIT 1.5 лет спустя (после того, как он получил еще один upvote): я оставляю это как есть; но если бы я писал сегодня, написал бы что-то ближе к решению Ash/suzanshakya:

  • используя with открыть файлы-это идиома pythonic - она гарантирует, что файл будет правильно закрыт, когда блок с помощью файла заканчивается.
  • итерация через файл с помощью for line in f намного лучше, чем for line in f.readlines() . Первый является pythonic (например, будет работать если f является любым общим iterable; не обязательно файловый объект, который реализует readlines ), и более эффективным!--7--> создает список со всем файлом в памяти, а затем перебирает его. * if search_phrase in line - это более подходящие для Python, чем if line.find(search_phrase) >= 0 , так как это не требует line для реализации find , читает более легко, чтобы увидеть, что предназначено, и не легко облажаться (например, if line.find(search_phrase) и if line.find(search_phrase) > 0 оба не будут работать для всех случаев, так как find возвращает индекс первого совпадения или -1).
  • его проще / чище обернуть повторяющийся элемент в enumerate как for i, line in enumerate(f) не удалось инициализировать line_num = 0 перед циклом, а затем вручную инкремент в цикле. (Хотя, возможно, это труднее читать для людей, незнакомых с enumerate .)

suzanshakya, я фактически изменяю ваш код, я думаю, что это упростит код, но убедитесь, что перед запуском кода файл должен быть в том же каталоге консоли, иначе вы получите ошибку.

откройте файл, а затем сделайте что-то вроде.

существует множество способов чтения строк из файлов в Python, но for line in f техника более эффективна, чем большинство.

В настоящее время я создаю довольно сложную систему на Python, и при отладке я часто помещаю простые операторы печати в несколько скриптов. Чтобы сохранить обзор, я также часто хочу распечатать имя файла и номер строки, где находится оператор печати. Конечно, я могу сделать это вручную или с помощью чего-то вроде этого:

который печатает что-то вроде:

filenameX.py:273 - что я на самом деле хочу напечатать здесь

Чтобы сделать это проще, я хочу иметь возможность сделать что-то вроде:

Поэтому я поместил его в функцию где-то и попытался сделать:

к сожалению, я получаю:

Он печатает имя файла и номер строки, в которой я определил функцию, вместо строки, в которой я вызываю debuginfo (). Это очевидно, потому что код находится в файле debugutil.py.

Итак, мой вопрос на самом деле: Как я могу получить имя файла и номер строки, из которой вызывается эта функция debuginfo ()? Все советы приветствуются!

3 ответа

Функция inspect.stack() возвращает список записи фреймов , начиная с вызывающего абонента и заканчивая выездом, который можно использовать для получения необходимой информации:

Выход

Если вы поместили свой код трассировки в другую функцию и вызвали его из основного кода, то вам нужно убедиться, что вы получаете информацию о стеке от деда, а не от родителя или самой функции трассировки

Ниже приведен пример трехуровневой глубокой системы, чтобы уточнить, что я имею в виду. Моя основная функция вызывает функцию трассировки, которая вызывает еще одну функцию для выполнения работы.

Это напечатает что-то вроде:

Функция trace_library_do () вверху является примером того, что вы можете поместить в библиотеку, а затем вызвать из других функций трассировки. Значение относительной глубины определяет, какая запись в стеке Python будет напечатана.

Я показал, как вытащил несколько других интересных значений в этой функции, таких как номер строки начала функции, общая глубина стека и полный путь к файлу. Я не показывал это, но глобальные и локальные переменные в функции также доступны в inspect, а также трассировка полного стека для всех других функций ниже вашей. С тем, что я показываю выше, информации более чем достаточно для создания иерархических трассировок времени вызова /возврата. Это на самом деле не так уж и далеко от создания основных частей вашего собственного отладчика исходного уровня отсюда - и все это в основном просто сидит в ожидании использования.

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

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

Полная трассировка на уровне исходного кода с использованием меток времени - это отличный способ улучшить ваше понимание того, что делает ваш код, особенно в более динамичной среде реального времени. Отличительной особенностью этого типа кода трассировки является то, что после его написания вам не нужна поддержка отладчика, чтобы увидеть его.

Просто поместите код, который вы разместили в функцию:

, а затем используйте его как хотите:

Я рекомендую вам поместить эту функцию в отдельный модуль, чтобы вы могли использовать ее каждый раз, когда вам это нужно.

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

Создание, открытие и закрытие файла

Работа с любым текстовым файлом в Python начинается с вызова специальной функции open, которая принимает в качестве параметров путь к объекту на компьютере и режим обработки. Путь к документу можно указать как абсолютный (адрес расположения на жестком диске ПК), так и как относительный (координаты относительно папки проекта). Выбирая нужный режим обработки файла, следует учитывать его назначение (“w” для записи, “r” для чтения данных). Следующий пример показывает простое взаимодействие с текстовым документом.

Как можно заметить, функция open принимает относительный путь файла и открывает его для записи. Если в папке с исходным кодом документа с аналогичным именем и расширением .txt не существует, метод open создает его самостоятельно, после чего открывает для него нужный режим обработки. Выполнив все необходимые действия с переменной file, которая ссылается на реальный файл, следует вручную закрыть его, чтобы избежать потери информации. Данную задачу выполняет метод close, если вызвать его при помощи оператора доступа (точки).

Выполнить точно такие же действия, но без необходимости вручную закрывать файл, вполне возможно благодаря связке операторов with as. Для этого необходимо поместить метод open сразу после ключевого слова with, а переменную, которая будет ссылаться на файл, прописать за конструкцией as. Ниже располагается пример открытия документа с помощью with as.

Оба примера небольших программ демонстрируют работу с test.txt, который генерируется в каталоге с исходным кодом. В качестве режима обработки для него выбирается запись данных. После этого при помощи метода write в него заносится строка “hello world”. Завершается код в обоих случаях закрытием текстового файла test.txt методом close или автоматически.

Запись построчно

Чтобы быстро записать информацию в текстовый файл, достаточно открыть его в программе, написанной на языке Python, после чего воспользоваться функцией write через переменную, которая ссылается на документ.

Приведенный выше пример небольшой программы показывает создание небольшого массива lines, который содержит три строковых элемента: “first”, “second” и “third”. За счет функции open и связки операторов with as происходит открытие текстового файла test.txt в корневом каталоге жесткого диска D. В цикле мы проходим по всем элементам списка и с помощью команды write их записываем. Чтобы каждая запись была с новой строки, добавляем символ перевода строки.

Так же можно воспользоваться функцией writelines. Если мы передадим в качестве ее параметра список, то она запишет элементы друг за другом в одну строку. Но можно поступить следующим образом: в качестве параметра передать генератор следующим образом.

Этот пример отличается от предыдущего тем, что вызывается метод writelines, который принимает в качестве аргумента генератор. Для разделения элементов последовательности тут применяется “\n”, благодаря чему каждое слово в документе будет находиться в отдельной строке.

Чтение построчно

Прочитать содержимое текстового файла построчно в языке Python очень просто, поскольку в этом прекрасно помогает цикл for. Но для начала все же необходимо открыть документ, как и в предыдущем случае, при помощи open и with as. Однако на этот раз следует указать другой режим обработки файла, выбрав для него “r” для получения доступа к чтению данных.

В этом примере показывается открытие файла test.txt, в котором уже содержится небольшой массив строк, записанный ранее. Построчное чтение информации из файла производится в цикле for. Каждая итерация выводит сведения из новой строки (line) при помощи функции print. Все элементы отображаются на экране построчно, как и были ранее помещены в test.txt.

Количество строк

Возможности языка Python позволяют производить и куда более сложные виды программных операций с внутренним содержимым текстовых файлов. Например, если требуется определить в Python количество строк в файле, можно открыть файл и в цикле посчитать количество занятых в нем строк. В этом поможет предварительно объявленная переменная count, в которую перед применением нужно записать 0, а затем прибавлять по единице с каждой новой строкой.

Приведенный выше пример демонстрирует работу счетчика count. Для взаимодействия с ним следует открыть текстовый файл в режиме чтения, а затем инкрементировать в каждом новом шаге цикла for объявленную ранее числовую переменную, которая затем выводится в print.

Можно поступить и другим способом. Прочитать файл в список с помощью readlines. А после этого с помощью функции len определить размер списка. Это и будет количество строк.

Поиск строки

Чтобы с помощью Python найти строку в текстовом файле, стоит прибегнуть к помощи встроенного метода readlines, который позволяет автоматически считывать внутреннее содержимое файла. Как и раньше, для начала необходимо открыть test.txt для чтения, чтобы затем поместить данные из него в специальный массив lines. Встроенный метод index позволяет найти номер элемента в последовательности, просто передав ему нужный объект, например, строку “second”.

Поскольку в test.txt все элементы располагаются в отдельных строках, к строке, которую стоит передать методу index в качестве аргумента, необходимо прибавить конструкцию “\n”.

Удаление строки

Чтобы в Python удалить ненужную строку из файла, следует воспользоваться сразу двумя режимами обработки файлов: чтение и запись. Для начала необходимо открыть test.txt для чтения, чтобы поместить информацию из него в отдельный массив lines. Далее потребуется удалить один из элементов последовательности при помощи оператора del, указав ему индекс нужной строки в квадратных скобках. Массив объектов, который получился в итоге, необходимо поместить в исходный текстовый файл, однако на этот раз открыть его надо в режиме записи.

Приведенный выше пример небольшой программы демонстрирует удаление строки из файла. В данном случае используются методы readlines и writelines, позволяющие считывать массив строк из документа и записывать его туда же, разделяя отдельные элементы списка.

Обратите внимание, что в приведенном примере удалится вторая строка, так как индексы списка считаются от нулевого элемента.

Таким образом, можно достаточно легко взаимодействовать с содержимым текстовых файлов, пользуясь языком программирования Python 3. Его встроенные функции позволяют записывать данные в документ и считывать их в удобном для пользователя виде. При помощи средств по расширенной работе с файлами, можно управлять ими на куда более продвинутом уровне.


Основы

Одним из самых распространённых типов данных является строковый. Вопреки расхожему мнению, программист чаще сталкивается не с числами, а с текстом. В Python, как известно, всё является объектами. Не исключение и строки – это объекты, состоящие из набора символов. Естественно, в языке существует широкий набор инструментов для работы с этим типом данных.

Строковые операторы

Операторы «+» и «*» в Питоне применимы не только к числам, но и к строкам.

Оператор сложения строк +

Оператор умножения строк *

Оператор «*» дублирует строку указанное количество раз.

Это работает только с целочисленными множителями. Если умножить на ноль или отрицательное число, результатом будет пустая строка. Но лучше так не делать.

Оператор принадлежности подстроки in

Если надо проверить, содержится ли подстрока в строке, удобно пользоваться оператором “in”

Так же можно использовать этот оператор с «not» для инвертирования результата.

Встроенные функции строк в python

Пайтон содержит ряд удобных встроенных функций для работы со строками.

Функция ord() возвращает числовое значение символа, при чём, как для кодировки ASCII, так и для UNICODE.

Функция chr(n) возвращает символьное значение для данного целого числа, то есть выполняет действие обратное ord().

Функция len() возвращает количество символов в строке.

Функция str() возвращает строковое представление объекта.

Индексация строк

Строка является упорядоченной последовательностью символов. Другими словами, она состоит из символов, стоящих в определённом порядке. Благодаря этому, к символу можно обратиться по его порядковому номеру. Для этого надо указать номер символа в квадратных скобках. Нумерация начинается с нуля (0 – это первый символ).

Попытка обращения по индексу большему чем длина строки вызовет исключение IndexError:

В качестве индекса может быть использовано отрицательное число. В этом случае индексирование начинается с конца строки: -1 относится к последнему символу, -2 к предпоследнему и так далее.

Срезы строк

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

Форматирование строки

В Python есть функция форматирования строки, которая официально названа литералом отформатированной строки, но обычно упоминается как f-string.

Главной особенностью этой функции является возможность подстановки значения переменной в строку.

Чтобы это сделать с помощью f-строки необходимо:

  • Указать f или F перед кавычками строки (что сообщит интерпретатору, что это f-строка).
  • В любом месте внутри строки вставить имя переменной в фигурных скобках (< >).

Изменение строк

Тип данных строка в Python относится к неизменяемым (immutable), но это почти не влияет на удобство их использования, ведь можно создать изменённую копию. Для этого есть два возможных пути:

Как Вы можете видеть, данный метод не меняет строку, а возвращает изменённую копию.

Встроенные методы строк в Python

Поскольку строка в Пайтон – это объект, у него есть свои методы. Методы – это те же самые функции, просто они «закреплены» за объектами определённого класса.

Изменение регистра строки

Если Вам надо изменить регистр строки, удобно использовать один из следующих методов

capitalize() переводит первую букву строки в верхний регистр, остальные в нижний.

Не алфавитные символы не изменяются:

lower() преобразует все буквенные символы в строчные.

swapcase() меняет регистр на противоположный.

title() преобразует первые буквы всех слов в заглавные

upper() преобразует все буквенные символы в заглавные.

Найти и заменить подстроку в строке

Эти методы предоставляют различные способы поиска в целевой строке указанной подстроки.

Каждый метод в этой группе поддерживает необязательные аргументы start и end. Они задают диапазон поиска: действие метода ограничено частью целевой строки, начинающейся в позиции символа start и продолжающейся вплоть до позиции символа end, но не включая его. Если start указано, а end нет, метод применяется к части строки от start до конца.

count() подсчитывает количество точных вхождений подстроки в строку.

endswith() определяет, заканчивается ли строка заданной подстрокой.

find() ищет в строке заданную подстроку. Возвращает первый индекс который соответствует началу подстроки. Если указанная подстрока не найдена, возвращает -1.

index() ищет в строке заданную подстроку.

Этот метод идентичен find(), за исключением того, что он вызывает исключение ValueError, если подстрока не найдена.

rfind() ищет в строке заданную подстроку, начиная с конца.

Возвращает индекс последнего вхождения подстроки, который соответствует её началу.

rindex() ищет в строке заданную подстроку, начиная с конца.

Этот метод идентичен rfind(), за исключением того, что он вызывает исключение ValueError, если подстрока не найдена.

startswith() определяет, начинается ли строка с заданной подстроки.

Классификация строк

Методы в этой группе классифицируют строку на основе символов, которые она содержит.

isalnum() возвращает True, если строка не пустая, а все ее символы буквенно-цифровые (либо буква, либо цифра).

isalpha() определяет, состоит ли строка только из букв.

isdigit() определяет, состоит ли строка из цифр.

isidentifier() определяет, является ли строка допустимым идентификатором (название переменной, функции, класса и т.д.) Python.

isidentifier() вернет True для строки, которая соответствует зарезервированному ключевому слову Пайтон, даже если его нельзя использовать.

Вы можете проверить, является ли строка ключевым словом Python, используя функцию iskeyword(), которая находится в модуле keyword.

Если вы действительно хотите убедиться, что строку можно использовать как идентификатор Питон, вы должны проверить, что isidentifier() = True и iskeyword() = False.

islower() определяет, являются ли буквенные символы строки строчными.

isprintable() определяет, состоит ли строка только из печатаемых символов.

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

isspace() определяет, состоит ли строка только из пробельных символов.

Тем не менее есть несколько символов ASCII, которые считаются пробелами. И если учитывать символы Юникода, их еще больше:

istitle() определяет, начинаются ли слова строки с заглавной буквы.

isupper() определяет, являются ли буквенные символы строки заглавными.

Выравнивание строк, отступы

Методы из данной группы управляют отображением строки.

center() выравнивает строку по центру.

Если указан необязательный аргумент fill, он используется как символ заполнения:

Если строка больше или равна указанной ширине, строка возвращается без изменений:

tabsize необязательный параметр, задающий количество пробелов.

ljust() выравнивание по левому краю.

lstrip() удаляет переданные в качестве аргумента символы слева. По умолчанию это пробелы.

replace() заменяет вхождения подстроки в строке.

Необязательный аргумент count, указывает количество замен, которое нужно осуществить:

rjust() выравнивание по правому краю строки в поле.

rstrip() обрезает пробельные символы.

strip() удаляет символы с левого и правого края строки.

Когда возвращаемое значение метода является другой строкой, как это часто бывает, методы можно вызывать последовательно:

zfill() возвращает копию строки дополненную нулями слева для достижения длины строки указанной в параметре width:

Если строка короче или равна параметру width, строка возвращается без изменений:

Методы преобразования строки в список

Методы в данной группе превращают строку в другой тип данных и наоборот. Эти методы возвращают или принимают коллекции (чаще всего это список).

join() возвращает строку, которая является результатом конкатенации элементов коллекции и разделителя.

Стоит обратить внимание что все элементы итерируемого объекта должны быть строкового типа. Так же Вы могли заметить в последнем примере, что для объединения словаря в строку метод join() использует не значения, а ключи. Если Вам нужны именно ключи, то делается это так:

Сложнее ситуация, когда нужны пары ключ-значение. Здесь придётся сперва распаковать кортежи.

partition() делит строку на основе разделителя (действие, обратное join). Возвращаемое значение представляет собой кортеж из трех частей:

  • Часть строки до разделителя
  • Разделитель
  • Часть строки после разделителя

Если разделитель не найден, возвращаемый кортеж содержит строку и ещё две пустые строки:

rpartition() делит строку на основе разделителя, начиная с конца.

rsplit() делит строку на список из подстрок. По умолчанию разделителем является пробел.

split() делит строку на список из подстрок.

Ведет себя как rsplit(), за исключением того, что при указании maxsplit – максимального количества разбиений, деление начинается с левого края строки:

Если параметр maxsplit не указан, между rsplit() и split() разницы нет.

splitlines() делит текст на список строк и возвращает их в списке. Любой из следующих символов или последовательностей символов считается границей строки:

Разделитель Значение
\n Новая строка
\r Возврат каретки
\r\n Возврат каретки + перевод строки
\v или же \x0b Таблицы строк
\f или же \x0c Подача формы
\x1c Разделитель файлов
\x1d Разделитель групп
\x1e Разделитель записей
\x85 Следующая строка
\u2028 Новая строка (Unicode)
\u2029 Новый абзац (Unicode)

Заключение

В этом уроке мы рассмотрели основные инструменты для работы со строками в Python. Как видите, они удобны и гибки. Есть встроенные функции и методы объекта «строка», строковые литералы. Ещё больше возможностей даёт нерассмотренный в этом уроке метод format и модуль re. Так же отдельного разговора заслуживает работа с кодировками. Следует отметить для тех, кто уже знаком с другими языками программирования: в отличие от некоторых из них, один символ в Пайтоне тоже является строкой. И изюминка напоследок. Поскольку в Питоне всё является объектом, у каждой строки тоже есть атрибуты.

Читайте также: