что значит перевод строки в python
Работа со строками в Python: литералы
Это первая часть о работе со строками, а именно о литералах строк.
Литералы строк
Работа со строками в Python очень удобна. Существует несколько литералов строк, которые мы сейчас и рассмотрим.
Строки в апострофах и в кавычках
Экранированные последовательности позволяют вставить символы, которые сложно ввести с клавиатуры.
Экранированная последовательность | Назначение |
---|---|
\n | Перевод строки |
\a | Звонок |
\b | Забой |
\f | Перевод страницы |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\N | Идентификатор ID базы данных Юникода |
\uhhhh | 16-битовый символ Юникода в 16-ричном представлении |
\Uhhhh… | 32-битовый символ Юникода в 32-ричном представлении |
\xhh | 16-ричное значение символа |
\ooo | 8-ричное значение символа |
\0 | Символ Null (не является признаком конца строки) |
Если перед открывающей кавычкой стоит символ ‘r’ (в любом регистре), то механизм экранирования отключается.
Но, несмотря на назначение, «сырая» строка не может заканчиваться символом обратного слэша. Пути решения:
Строки в тройных апострофах или кавычках
Главное достоинство строк в тройных кавычках в том, что их можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд.
Это все о литералах строк и работе с ними. О функциях и методах строк я расскажу в следующей статье.
Работа со строками
Строками в языках программирования принято называть упорядоченные последовательности символов, которые используются для представления любой текстовой информации. В Python они являются самостоятельным типом данных, а значит при помощи встроенных функций языка над ними можно производить различные операции и форматировать их для вывода.
Создание
Получить новую строку можно несколькими способами: при помощи соответствующего литерала либо же вызвав готовую функцию. Для начала рассмотрим первый метод, который продемонстрирован ниже. Здесь переменная string получает значение some text, благодаря оператору присваивания. Вывести на экран созданную строку помогает функция print.
Как видно из предыдущего примера, строковый литерал обрамляется в одиночные кавычки. Если необходимо, чтобы данный символ был частью строки, следует применять двойные кавычки, как это показано в следующем фрагменте кода. Из результатов его работы видно, что новая строка включает в себя текст some ‘new’ text, который легко выводится на экран.
Иногда возникает потребность в создании объектов, включающих в себя сразу несколько строк с сохранением форматирования. Эту задачу поможет решить троекратное применение символа двойных кавычек для выделения литерала. Объявив строку таким образом, можно передать ей текст с неограниченным количеством абзацев, что показано в данном коде.
Специальные символы
Пользоваться тройными кавычками для форматирования строк не всегда удобно, так как это порой занимает слишком много места в коде. Чтобы задать собственное форматирование текста, достаточно применять специальные управляющие символы с обратным слэшем, как это показано в следующем примере. Здесь используется символ табуляции \t, а также знак перехода на новую строку \n. Метод print демонстрирует вывод нового объекта на экран.
Служебные символы для форматирования строк выполняют свои функции автоматически, но иногда это мешает, к примеру, когда требуется сохранить путь к файлу на диске. Чтобы их отключить, необходимо применить специальный префикс r перед первой кавычкой литерала. Таким образом, обратные слэши будут игнорироваться программой во время ее запуска.
Следующая таблица демонстрирует перечень всех используемых в языке Python служебных символов для форматирования строк. Как правило, большинство из них позволяют менять положение каретки для выполнения перевода строки, табуляции или возврата каретки.
Символ | Назначение |
\n | Перевод каретки на новую строку |
\b | Возврат каретки на один символ назад |
\f | Перевод каретки на новую страницу |
\r | Возврат каретки на начало строки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\a | Подача звукового сигнала |
\N | Идентификатор базы данных |
\u, \U | 16-битовый и 32-битовый символ Unicode |
\x | Символ в 16-ричной системе исчисления |
\o | Символ в 8-ричной системе исчисления |
\0 | Символ Null |
Очень часто испльзуется \n. С помощью него осуществляется в Python перенос строки. Рассмотрим пример:
Форматирование
Выполнить форматирование отдельных частей строки, задав в качестве ее компонентов некие объекты программы позволяет символ %, указанный после литерала. В следующем примере показано, как строковый литерал включает в себя не только текст, но также строку и целое число. Стоит заметить, что каждой переменной в круглых скобках должен соответствовать специальный символ в самом литерале, обладающий префиксом % и подходящим значением.
В приведенном ниже фрагменте кода демонстрируется использование форматирования для вывода строки с выравниванием по правому краю (общая длина символов указана как 10).
Данная таблица содержит в себе все управляющие символы для форматирования строк в Python, каждый из которых обозначает определенный объект: числовой либо же символьный.
Символ | Назначение |
%d, %i, %u | Число в 10-ричной системе исчисления |
%x, %X | Число в 16-ричной системе исчисления с буквами в нижнем и верхнем регистре |
%o | Число в 8-ричной системе исчисления |
%f, %F | Число с плавающей точкой |
%e, %E | Число с плавающей точкой и экспонентой в нижнем и верхнем регистре |
%c | Одиночный символ |
%s, %r | Строка из литерала и обычная |
%% | Символ процента |
Более удобное форматирование выполняется с помощью функции format. Ей необходимо передать в качестве аргументов объекты, которые должны быть включены в строку, а также указать места их расположения с помощью числовых индексов, начиная с нулевого.
В следующем примере показано как можно отцентрировать строку, воспользовавшись методом format и специальными символами. Изначальный текст здесь перемещается в самый центр строки, в то время как пустое пространство заполняется символом *.
Следующая таблица отображает специальные символы для выравнивания строк и вывода чисел с необходимым форматом знаков для положительных и отрицательных объектов.
Символ | Назначение |
‘ ’ | Выравнивание строки по правому краю с символами-заполнителями слева |
‘=’ | Выравнивание с символами-заполнителями после знака числа, но перед его цифрами |
‘^’ | Выравнивание строки по центру с символами-заполнителями с обеих сторон |
‘+’ | Применение знака для любых чисел |
‘-‘ | Применение знака для отрицательных чисел и ничего для положительных |
‘ ‘ | Применение знака для отрицательных чисел и пробела для положительных |
Операции над строками
Прежде чем перейти к функциям для работы со строками, следует рассмотреть основные операции с ними, которые позволяют быстро преобразовывать любые последовательности символов. При помощи знака плюс можно производить конкатенацию строк, соединяя их вместе. В следующем примере продемонстрировано объединение this is new и text.
Пользуясь символом умножения, программист получает возможность дублировать строку любое количество раз. В данном коде слово text записывается в новую строку трижды.
Как и в случае с числами, со строками можно использовать операторы сравнения, например двойное равно. Очевидно, что литералы some text и some new text разные, поэтому вызов метода print выводит на экран булево значение False для строк string и newString.
Операции над строками позволяют получать из них подстроки, делая срезы, как с обычными элементами последовательностей. В следующем примере, необходимо лишь указать нужный интервал индексов в квадратных скобках, помня, что нумерация осуществляется с нуля.
Методы и функции
Очень часто используется для приведения типов к строковому виду функция str. С ее помощью можно создать новую строку из литерала, который передается в качестве аргумента. Данный пример демонстрирует инициализацию переменной string новым значением some text.
Аргументом этой функции могут быть переменные разных типов, например числа или списки. Эта функция позволяет в Python преобразовать в строку разные типы данных. Если вы создаете свой класс, то желательно определить для него метод __str__. Этот метод должен возвращать строку, которая будет возвращена в случае, когда в качестве аргумента str будет использован объект вашего класса.
В Python получения длины строки в символах используется функция len. Как видно из следующего фрагмента кода, длина объекта some text равняется 9 (пробелы тоже считаются).
Метод find позволяет осуществлять поиск в строке. При помощи него в Python можно найти одиночный символ или целую подстроку в любой другой последовательности символов. В качестве результата своего выполнения он возвращает индекс первой буквы искомого объекта, при этом нумерация осуществляется с нуля.
Метод replace служит для замены определенных символов или подстрок на введенную программистом последовательность символов. Для этого необходимо передать функции соответствующие аргументы, как в следующем примере, где пробелы заменяются на символ ‘-‘.
Для того чтобы разделить строку на несколько подстрок при помощи указанного разделителя, следует вызвать метод split. По умолчанию его разделителем является пробел. Как показано в приведенном ниже примере, some new text трансформируется в список строк strings.
Выполнить обратное преобразование, превратив список строк в одну можно при помощи метода join. В следующем примере в качестве разделителя для новой строки был указан пробел, а аргументом выступил массив strings, включающий some, new и text.
Наконец, метод strip используется для автоматического удаления пробелов с обеих сторон строки, как это показано в следующем фрагменте кода для значения объекта string.
Ознакомиться с функциями и методами, используемыми в Python 3 для работы со строками можно из данной таблицы. В ней также приведены методы, позволяющие взаимодействовать с регистром символов.
Кодировка
Чтобы задать необходимую кодировку для используемых в строках символов в Python достаточно поместить соответствующую инструкцию в начало файла с кодом, как это было сделано в следующем примере, где используется utf-8. С помощью префикса u, который стоит перед литералом, можно помечать его соответствующей кодировкой. В то же время префикс b применяется для литералов строк с элементами величиной в один байт.
Производить кодирование и декодирование отдельных строк с заданной кодировкой позволяют встроенные методы decode и encode. Аргументом для них является название кодировки, как в следующем примере кода, где применяется наименование utf-8.
str Python
Введение
Объект типа str содержит в себе поседовательность Unicode символов (Unicode code points)
Это Immutable объект. То есть после создания уже нельзя в нём что-то изменить.
Пример
File » «, line 1 «urn.su’ ^ SyntaxError: EOL while scanning string literal
File » «, line 1 ‘urn.su» ^ SyntaxError: EOL while scanning string literal
Один тип кавычек можно вложить в другой
>>> «Andrei’s site urn.su»
«Andrei’s site urn.su»
Multiline Strings
Многострочные переменные часто удобны для лучшей читаемости кода. Если вы вводите какое-то длинное значени
Их можно создать, заключив значение между «»» и «»» (или между »’ и »’)
‘Это пример \n многострочной \n переменной типа \n str’
Зададим переменной s значение с использованием \n
>>> s = ‘Это пример \n многострочной \n переменной типа \n str’ >>> print(s)
Это пример многострочной переменной типа str
Точно такой же результат можно получить используя «»» «»»
Это пример многострочной переменной типа str
Универсальный перенос строки
С помощью встроенного в Python Universal Newlines \n переводится в ту последовательность символов, которая принята в вашей операционной системе.
В Windows переход на новую строку (Carriage-return) это \r\n
В Linux, MacOS и других UNIX это \r
\ означает начало экранированной последовательности (Escape Sequence).
Также рекомендую к прочтению статью
Escape Sequences
Экранированный символ теряет своё изначальное значение и воспринимается интерпретатором как обычный символ либо наоборот приобретает дополнительный смысл как мы уже видели на примере \n
>>> «This is n it is a normal symbol»
‘This is n it is a normal symbol’
>>> s = «This is n it is a normal symbol»
>>> print(s)
This is n it is a normal symbol
>>> «This is \n it is an escaped symbol»
‘This is \n it is an escaped symbol’
>>> s = «This is \n it is an escaped symbol»
>>> print(s)
This is it is an escaped symbol
Вместо n теперь перенос строки
Экранирование можно применить для использования одинаковых кавычек внутри и снаружи строки
>>> «Двойная кавычка \» внутри двойных»
‘Двойная кавычка » внутри двойных’
>>> ‘Одинарная кавычка \’ внутри одинарных’
‘Одинарная кавычка ‘ внутри одинарных’
Если экранирование не подразумевается, то \ будет всё равно будет воспринят интерпретатором как попытка экранирования и не появится как обычный символ
>>> ‘Двойную кавычку \» можно не экранировать внутри одинарных а \’ одинарную нужно’
‘Двойную кавычку » можно не экранировать внутри одинарных а \’ одинарную нужно’
>>> s = ‘Двойную кавычку \» можно не экранировать внутри одинарных а \’ одинарную нужно’
Двойную кавычку » можно не экранировать внутри одинарных а ‘ одинарную нужно
Чтобы всё-таки увидеть \ нужно написать \\ то есть проэкранировать символ экранирования
Escape Sequence | Значение | Примечания |
---|---|---|
\newline | Backslash and newline ignored | |
\\ | Backslash (\) | |
\’ | Single quote (‘) | |
\» | Double quote («) | |
\a | ASCII Bell (BEL) | |
\b | ASCII Backspace (BS) | |
\f | ASCII Formfeed (FF) | |
\n | ASCII Linefeed (LF) | |
\r | ASCII Carriage Return (CR) | |
\t | ASCII Horizontal Tab (TAB) | |
\v | ASCII Vertical Tab (VT) | |
\ooo | Character with octal value ooo | (1,3) |
\xhh | Character with hex value hh | (2,3) |
Escape Sequence | Значение | Примечания | ||||||
---|---|---|---|---|---|---|---|---|
\N Character named name in the Unicode database | (4) | \uxxxx | Character with 16-bit hex value xxxx | (5) | \Uxxxxxxxx | Character with 32-bit hex value xxxxxxxx | (6) | |
docs.python.org/3/reference/lexical_analysis.html |
As in Standard C, up to three octal digits are accepted.
Unlike in Standard C, exactly two hex digits are required.
In a bytes literal, hexadecimal and octal escapes denote the byte with the given value. In a string literal, these escapes denote a Unicode character with the given value.
Changed in version 3.3: Support for name aliases 1 has been added.
Exactly four hex digits are required.
Any Unicode character can be encoded this way. Exactly eight hex digits are required.
Raw Strings
В случаях когда нужно использовать много символов нуждающихся в экранировании пригодятся raw strings
Они позволяют вводить данные практически в WYSIWYG виде.
Например, удобно использовать raw string для храния адреса системного пути в Windows
>>> path = r’C:\Users\Andrei\Sites\HeiHeiRu’
>>> path
Изменить тип на str
С помощью функции str() можно изменить тип объекта на строку. Обычо это используется с числами
Доступ к символам строки
Если нужно воспользоваться не всем объектом типа str а только каким-то символом, это лего сделать указав его порядковый номер в квадратных скобках.
Какой индекс нужно указать, чтоб получить точку?
Проверить тип переменной можно с помощью функции type()
У символа входящего в состав строки тип, естественно, тоже str
Методы (capitalize)
Изучить все доступные для работы со str методы можно вызвав функцию help с аргументом str
Рассмотрим метод capitalize
| capitalize(self, /) | Return a capitalized version of the string. | | More specifically, make the first character have upper case and the rest lower | case.
>>> c = «topBicycle.ru»
>>> c.capitalize()
Первая буква стала заглавной. Все остальные стали строчными.
capitalize() не изменят изначальную строку. Это можно проверить выполнив
Обрезать строку
# отрезать x символов с конца строки s
s[:- x ]
# отрезать y символов с начала строки s
s[ y :]
# обрезать и начало и конец
s[ y :- x ]
>>> url = «https://www.heihei.ru»
>>> a = url[:-3]
>>> a
>>> ‘https://www.heihei’
>>> b = a[12:]
>>> b
>>> ‘heihei’
>>> c = url[12:-3]
>>> c
>>> ‘heihei’
Unicode
Python поддерживает Unicode так как по дефолту в нём используется UTF-8
Это позволяет использовать юникод символы без заморочек
>>> «Pythonia voi käyttää myös vaativassa ja tieteellisessä»
‘Pythonia voi käyttää myös vaativassa ja tieteellisessä’
Если бы поддержки не было скорее всего пришлось бы заменять специальные символы, такие как умлауты, на из юникод представление
>>> «Pythonia voi k\u00e4ytt\u00e4\u00e4 my\u00f6s vaativassa ja tieteellisess\u00e4»
‘Pythonia voi käyttää myös vaativassa ja tieteellisessä’
Можно получить юникод символы и другими способами
string Module
Подключив библиотеку strig можно пользоваться готовыми наборами символов
«»»
printable = digits + ascii_letters + punctuation + whitespace
Строки в Python и функции для работы с ними
С троки в языке программирования Python — это объекты, которые состоят из последовательности символов.
Наравне с bool, int и другими типами данных, работа со строковым типом является неотъемлемой частью программирования, так как очень редко встречаются приложения, в которых не используется текст.
Вводная информация о строках
Как и во многих других языках программирования, в Python есть большая коллекция функций, операторов и методов, позволяющих работать со строковым типом.
Что представляют собой строки в Python
С точки зрения Питона, строка — это упорядоченная последовательность символов, которая предназначена для хранения информации в виде простого текста.
Поэтому тип данных string используется в случае, когда что-то нужно представить в текстовой форме.
Литералы строк
Литерал — способ создания объектов, в случае строк Питон предлагает несколько основных вариантов:
>>> ‘string’ # одинарные кавычки ‘string’ >>> «string» # двойные кавычки ‘string’ >>> «»»string»»» ‘string’ >>> »’string»’ ‘string’
Если внутри строки необходимо расположить двойные кавычки, и сама строка была создана с помощью двойных кавычек, можно сделать следующее:
>>> ‘book «war and peace»‘ # разный тип кавычек ‘book «war and peace»‘ >>> «book ‘war and peace'» # разный тип кавычек «book ‘war and peace'» >>> «book \»war and peace\»» # экранирование кавычек одного типа ‘book «war and peace»‘ >>> ‘book \’war and peace\» # экранирование кавычек одного типа «book ‘war and peace'»
💡 Разницы между строками с одинарными и двойными кавычками нет — это одно и то же
Какие кавычки использовать — решать вам, соглашение PEP 8 не дает рекомендаций по использованию кавычек. Просто выберите один тип кавычек и придерживайтесь его. Однако если в стоке используются те же кавычки, что и в литерале строки, используйте разные типы кавычек — обратная косая черта в строке ухудшает читаемость кода.
Кодировка строк
В третьей версии языка программирования Python все строки представляют собой последовательность Unicode-символов.
В Python 3 кодировка по умолчанию исходного кода — UTF-8. Во второй версии по умолчанию использовалась ASCII. Если необходимо использовать другую кодировку, можно разместить специальное объявление на первой строке файла, к примеру:
Максимальная длина строки в Python
Максимальная длина строки зависит от платформы. Обычно это:
>>> import sys >>> sys.maxsize 2147483647
Перенос строк
Перенос строки осуществляется с помощью символа \n :
>>> text = «one\ntwo\nthree» >>> print(text) one two three
Конкатенация строк
>>> s1 = «Hello» + » world» >>> s2 = » world» >>> s1+s2 ‘Hello world’
При необходимости объединения строки с числом его предварительно нужно привести тоже к строке, используя функцию str() :
>>> name = «John» >>> age = 30 >>> «Name: » + name + «, age: » + str(age) ‘Name: John, age: 30’
Сравнение строк
При сравнении нескольких строк рассматриваются отдельные символы и их регистр:
При этом сравниваются по очереди первые символы, затем — 2-е и так далее.
>>> s1 = «1a» >>> s2 = «aa» >>> s3 = «Aa» >>> s4 = «ba» >>> «1a» > «aa» # сравнение цифры с буквой False >>> «aa» > «Aa» # сравнение регистров True >>> «aa» > «ba» # сравнение букв по алфавитному порядку False >>> «aa»
Далеко не всегда желательной является зависимость от регистра, в таком случае можно привести обе строки к одному и тому же регистру. Для этого используются функции lower() — для приведения к нижнему и upper() — к верхнему:
>>> s1 = «Intel» >>> s2 = «intel» >>> s1 == s2 False >>> s1.lower() == s2.lower() True
Пустая строка Python
Объявить пустую строку можно следующими способами:
Как удалить строку в Python
Или перезаписать переменную пустой строкой:
Обращение по индексу
Для выбора определенного символа из строки можно воспользоваться обращением по индексу, записав его в квадратных скобках:
>>> s = «abcdef» >>> s[0] ‘a’ >>> s[2] ‘c’
Индекс начинается с 0
В Python предусмотрена возможность получить доступ и по отрицательному индексу. В таком случае отсчет будет вестись от конца строки:
Форматирование строк
Часто возникает ситуация, когда необходимо создать строку, подставив в нее определенные значения, полученные во время выполнения программы. Подстановка данных в таком случае выполняется при помощи форматирования строк, сделать это можно несколькими способами.
Оператор %
Строки в Python обладают встроенной операцией, к которой можно получить доступ оператором %, что дает возможность очень просто делать форматирование. Самый простой пример — когда для подстановки нужен только один аргумент, значением будет он сам:
>>> name = «Alex» >>> ‘Hello, %s’ % name ‘Hello, Alex’
Если же для подстановки используется несколько аргументов, то значением будет кортеж со строками:
>>> ‘%d %s, %d %s’ % (6, ‘bananas’, 10, ‘lemons’) ‘6 bananas, 10 lemons’
Как видно из предыдущего примера, зависимо от типа данных для подстановки и того, что требуется получить в итоге, пишется разный формат. Наиболее часто используются:
Такой способ форматирования строк называет «старым» стилем, который в Python 3 был заменен на более удобные способы.
str.format()
>>> print(‘<>‘.format(100)) 100 >>> ‘<0>, <1>, <2>‘.format(‘one’, ‘two’, ‘three’) ‘one, two, three’ >>> ‘<2>, <1>, <0>‘.format(‘one’, ‘two’, ‘three’) ‘three, two, one’
💭 В Python 3 форматирование строк с использованием «нового стиля» является более предпочтительным по сравнению с использованием %-стиля, так как предоставляет более широкие возможности, не усложняя простые варианты использования.
f-строки (Python 3.6+)
В Python версии 3.6 появился новый метод форматирования строк — «f-строки», с его помощью можно использовать встроенные выражения внутри строк:
>>> name = ‘Alex’ >>> f’Hello,
Такой способ форматирования очень мощный, так как дает возможность встраивать выражения:
>>> a = 5 >>> b = 10 >>> f’Five plus ten is and not <2 * (a + b)>.’ ‘Five plus ten is 15 and not 30.’
Таким образом, форматирование с помощью f-строк напоминает использование метода format(), но более гибкое, быстрое и читабельное.
Стандартная библиотека Template Strings
Функции для работы со строками
Для работы со строками в Питоне предусмотрены специальные функции. Рассмотрим их:
Преобразование числового или другого типа к строке:
Методы для работы со строками
Кроме функций, для работы со строками есть немало методов:
>>> text = «Wikipedia is a Python library that makes it easy to access and parse data from Wikipedia» >>> text.find(«Wikipedia») 0 >>> text.rfind(«Wikipedia») 79 >>> text.replace(«from Wikipedia», «from https://www.wikipedia.org/») ‘Wikipedia is a Python library that makes it easy to access and parse data from https://www.wikipedia.org/’ >>> text.split(» «) [‘Wikipedia’, ‘is’, ‘a’, ‘Python’, ‘library’, ‘that’, ‘makes’, ‘it’, ‘easy’, ‘to’, ‘access’, ‘and’, ‘parse’, ‘data’, ‘from’, ‘Wikipedia’] split_text = text.split(» «) >>> «_».join(split_text) ‘Wikipedia_is_a_Python_library_that_makes_it_easy_to_access_and_parse_data_from_Wikipedia’ >>> text = » test » >>> text.strip() ‘test’ >>> text.lstrip() ‘test ‘ >>> text.rstrip() ‘ test’ >>> text = «Python is a product of the Python Software Foundation» >>> text.lower() ‘python is a product of the python software foundation’ >>> text.upper() ‘PYTHON IS A PRODUCT OF THE PYTHON SOFTWARE FOUNDATION’ >>> text = «python is a product of the python software foundation» >>> text.capitalize() ‘Python is a product of the python software foundation’
Преобразование из строки в другой тип
В Питоне строки можно преобразовывать в другие типы данных:
string to int
Функция int() преобразовывает целое число в десятичной системе, заданное как строка, в тип int:
При необходимости можно указывать систему счисления:
>>> int(«0x12F», base=16) 303
string to list
Самый простой способ преобразования строки в список строк — метод split() :
>>> ‘one two three four’.split() [‘one’, ‘two’, ‘three’, ‘four’]
При необходимости можно указывать разделитель:
>>> ‘one, two, three, four’.split(‘,’) [‘one’, ‘ two’, ‘ three’, ‘ four’]
string to bytes
Преобразование строкового типа в байтовый выполняется функцией encode() с указанием кодировки:
string to datetime
Строка в дату преобразовывается функцией strptime() из стандартного модуля datetime :
>>> from datetime import datetime >>> print(datetime.strptime(‘Jan 1 2020 1:33PM’, ‘%b %d %Y %I:%M%p’)) 2020-01-01 13:33:00
string to float
Для преобразования строки в число с плавающей точкой используется стандартная функция float :
string to dict
Создание словаря из строки возможно, если внутри нее данные в формате json. Для этого можно воспользоваться модулем json :
string to json
Конвертация объектов Python в объект json выполняется функцией dumps() :
>>> import json >>> json.dumps(«hello») ‘»hello»‘
Best practices
Как разбить строку на символы
Разбиение строки на отдельные символы выполняется несколькими способами:
>>> text = «django» # вариант 1 >>> list(text) [‘d’, ‘j’, ‘a’, ‘n’, ‘g’, ‘o’] # вариант 2 >>> [c for c in «text»] [‘t’, ‘e’, ‘x’, ‘t’] # вариант 3 >>> for c in text: print(c) d j a n g o
Как из строки выделить числа
Для извлечения чисел из строки можно воспользоваться методами строк:
>>> str = «h3110 23 cat 444.4 rabbit 11 2 dog» >>> [int(s) for s in str.split() if s.isdigit()] [23, 11, 2]
Данный пример извлекает только целые положительные числа. Более универсальный вариант – регулярные выражения:
>>> str = «h3110 23 cat 444.4 rabbit 11 2 dog» >>> import re >>> re.findall(r’\d+’, str) [‘3110′, ’23’, ‘444’, ‘4’, ’11’, ‘2’]
Как перевернуть строку
Существует несколько способов перевернуть строку, начиная от классического – запустить цикл в обратной последовательности, выбирая каждый символ с конца и вставляя его в новую строку, и заканчивая срезами – вариант только для Питона.
С помощью среза — самый быстрый способ:
Использование reversed() и str.join() :
Как удалить последний символ в строке
Как и в предыдущем случае – чтобы убрать последний символ наиболее простым и быстрым вариантом будет использование среза:
>>> «Some text1″[:-1] ‘Some text’
Как убрать пробелы из строки
В случае удаления пробелов со строки может быть два варианта:
1 Обрезать строку так, чтобы удалить с нее первый и последний пробел, такой вариант может пригодиться, когда пользователь случайно поставит пробел в конце введенного текста:
>>> » Some text «.strip() ‘Some text’
2 Удалить со строки все пробелы:
>>> » So me t e x t «.replace(‘ ‘, ») ‘Sometext’
Работа со строками — неотъемлемая часть создания практически любого приложения, где используется текст, и язык программирования Python предоставляет широкие возможности работы с такими данными.