Как поставить одинарные кавычки в питоне
Перейти к содержимому

Как поставить одинарные кавычки в питоне

Python с нуля — часть 7: строки

Строки (string) один из наиболее часто используемых типов данных в Python.

Создать строку можно просто заключив символы в кавычки, при этом для Python одинарные кавычки ( ‘ ‘ ) имеют такое же значение, как и двойные ( » » ).

Создаётся строка простым присваивание значения переменной. Например:

Получение значений из строк

Для доступа к отдельным символам в строке используются квадратные скобки с указанием индекса символа, допустимо выполнение “среза” (slicing), с указанием начального и конечного индекса.

Результат выполнения этого кода:

Обновление данных в строках

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

Примечание: вообще, строки в Python являются неизменяемыми (immutable) объектами, и прямое присваивание нового значения элементу списка вызовет ошибку:

Но можно воспользоваться операцией конкатенации (см. ниже) для этого. При этом – сам объект в памяти остаётся прежним:

Escape-последовательности

В таблице ниже приводится список символов, которые не отображаются на экране при обработке.

Они обрабатываются как в одинарных, так и в двойных кавычках.

Backslash
notation
Hexadecimal
character
Description
a 0x07 звуковой сигнал или предупреждение
b 0x08 возврат на одну позицию
cx control-x
C-x control-x
e 0x1b escape
f 0x0c команда принтера
M-C-x meta-Control-x
n 0x0a новая строка
nnn восьмеричное значение
r 0x0d возврат каретки
s 0x20 пробел
t 0x09 табуляция
v 0x0b вертикальная табуляция
x символ x
xnn шестнадцатеричное значение

Специальные строковые операторы

Operator Description Example
+ конкатенация – добавление значений с обеих сторон от оператора a + b вернёт HelloPython
* повторение – создаёт новую строку, в которой объединены копии той же строки a*2 вернёт HelloHello
[] срез (slice) – возвращает символ с указанным индексом a[1] вернёт e
[ : ] срез диапазона – возвращает символы с заданном диапазоне индексов a[1:4] вернёт ell
in членство (membership) – возвращает истину (true, 1) если заданный символ присутствует в строке H in a вернёт 1
not in членство (membership) – возвращает истину (true, 1) если заданный символ не присутствует в строке M not in a вернёт 1
r/R обычная строка (raw string) – подавляет значение escape-последовательностей; синтаксис таких строк такой же, как и у обычных строк, за исключением оператора r или R, который добавляется непосредтсвенно перед открывающей кавычкой print r’n’ вернёт n и print R’n’ вернёт n
% format – выполнение форматирования строки см. далее

Оператор форматирования строк

Одна из наиболее приятных возможностей в Python – оператор % . Этот оператор уникален для строковых типов данных и подобен функции printf() из языка С:

Другой, более наглядный и простой пример:

В таблице представлен полный список символов, которые могут быть использованы с оператором % :

Format Symbol Conversion
%c один символ
%s преобразование строки данными другого str()-объекта
%i алиас %d
%d целое десятичное число
%u то же, что и %d (устарев?)
%o восьмеричное целое
%x шестнадцатеричное целое (строчные буквы)
%X шестнадцатеричное целое (ПРОПИСНЫЕ буквы)
%e экспоненциальное представление (строчная ‘e’)
%E экспоненциальное представление (прописная ‘e’)
%f вещественное число в десятичном виде
%g краткая версия для %f и %e
%G краткая версия для %f и %E

Кроме этого, есть дополнительные возможности:

Symbol Functionality
* argument specifies width or precision
left justification
+ display the sign
<sp> leave a blank space before a positive number
# add the octal leading zero ( ‘0’ ) or hexadecimal leading ‘0x’ or ‘0X’, depending on whether ‘x’ or ‘X’ were used.
0 pad from left with zeros (instead of spaces)
% ‘%%’ leaves you with a single literal ‘%’
(var) mapping variable (dictionary arguments)
m.n. m is the minimum total width and n is the number of digits to display after the decimal point (if appl.)

Тройные кавычки

Тройные кавычки в Python позволяют располагать текст в несколько строк и использовать в нём специальные символы, такие как табуляция ( t ), новая строка ( n ) и другие.

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

Синтаксис тройных кавычек представляет собой набор из трёх открывающих последовательных одинарных или двойных кавычек – и трёх закрывающих.

Результат выполнения этого кода:

Обратите внимание, что каждый специальный символ был превращен в его “печатную форму”, а новые строки отображаются либо прямым переводом строки в тексте, либо escape-последовательностью ( n ).

“Сырые строки” (raw strings) не обрабатывают символ обратно слеша как специальный символ. Каждый символ, который указан в такой строке будет отображён “как есть”:

Результат выполнения этого кода:

Теперь – давайте сделаем “необработанную строку” с помощью символа r перед открывающей кавычкой:

Строки с unicode

Обычные строки в Python записываются с помощью таблицы 8-ми битной ASCII символов, тогда как Unicode-строки хранятся в 16-ти битной таблице. Это позволяет использовать более разнообразные символы в ней, включая специальные символы различных языков.

Мы ограничимся такой Unicode-строкой:

Результат её выполнения:

Как видно, Unicode-строки используют объявление с помощью символа u , так же как raw-строки используют объявление с помощью префикса r .

Встроенные строковые методы (или методы строк)

UPD: смотрите более полное описание строковых методов тут>>>.

В Python имеются такие встроенные методы для управление строками:

Работа со строками в Python

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

  • создание строк;
  • конкатенация строк;
  • выборка символов по индексам.

Создание строки

Строки (strings) используются для хранения текстовых данных. Их создание возможно одним из 3-х способов. Тут все просто, т. к. возможно применение разных кавычек: одинарных, двойных либо тройных. То есть в эти кавычки и нужно обернуть текст:

otus_string_1 = ‘Привет, друзья!’

otus_string_2 = «Хотите выучить Python?»

otus_string_3 = «»»Ждем вас на наших курсах!»»»

Кавычки в данном случае — это строковые литералы, позволяющие создавать в памяти программы Python объект типа string.

Нужно понимать, что разницы, какие именно кавычки использует разработчик, нет. Главное — открывающие и закрывающие кавычки должны быть однотипными. Если же поставить вначале одинарную кавычку, а в конце двойную — ошибки не избежать.

Можно ли применять кавычки внутри строк?

Можно, для чего есть несколько вариантов. Один из них — использовать внутри строки кавычки другого типа. К примеру, наружные кавычки являются двойными, а внутренние — одинарными. Или наоборот:

otus_string_1 = ‘Хотите выучить «Пайтон?» и стать профессионалом’

otus_string_2 = «Запишитесь на курс в ‘Отус’ уже сегодня!»

Второй метод — экранирование. Для экранирования используется обратный слэш. Вот, как это выглядит в коде:

otus_string_1 = «Я и \’Пайтон\’ созданы друг для друга»

У тройных кавычек есть особенности. Заключенные в них строки поддерживают многострочность, то есть для переноса не нужен символ \n. А еще внутри тройных кавычек можно вставлять как двойные, так и одинарные кавычки:

Вывод будет следующим:

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

otus_string = ‘Привет, друзья!’

otus_string = «Хотите выучить Python?»

Рекомендуется повторить вышеописанные операции самостоятельно и попрактиковаться. Сделать это можно, даже не устанавливая «Пайтон», используя любой онлайн-компилятор.

Конкатенация строк

Конкатенация — это сложение строк, в результате чего они соединяются друг с другом. Самый простой способ сделать это — использовать простейший оператор сложения, то есть знак «+».

Это простейший синтаксис, причем можно брать сколько угодно строк и соединять их:

otus_string = «Я » + «просто » + «обожаю » + «Python!»

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

otus_string = «Code» * 10

Важное свойство строк — длина (число символов). Узнать количество символов, из которых состоит строка, можно, задействовав встроенную функцию len (от англ. length — длина).

Код ниже посчитает число символов:

otus_string = «Python is a good for coding»

Итого: строка содержит 27 символов (пробел — тоже символ):

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

Несколько слов о методах строк

Ранее уже использовались такие методы, как print и id. Есть свои методы и у строковых данных — они принадлежат конкретному классу str. Чтобы вывести их, можно воспользоваться функцией dir:

Зубрить каждый из них нет необходимости, так как нужные методы будут запоминаться с практикой. Чтобы обратиться к одному из них, следует сначала обратиться к соответствующему объекту, потом поставить точку, потом написать нужный метод и круглые скобки. Лучше это увидеть:

Что отображено на скриншоте выше:

  • была создана новая строка string_1 с содержимым “oTUs”;
  • вначале задействовали метод title — вывод слова получился с заглавной буквы;
  • потом использовали метод для верхнего регистра upper — заглавными (прописными) стали все символы строки;
  • далее применили lower — все символы стали маленькими (строчными), то есть перешли в нижний регистр.

Какие еще есть методы:

  • replace —для замены одной части исходной строки (подстроки) на другую;
  • split — позволяет разделить (не удалить!) строку по переданному делителю, возвращает список;
  • join — склеивает подстроки по конкретному разделителю;
  • strip. В языке программирования Python strip используется для обрезки ненужных символов, причем ненужный символ передается в виде аргумента. Обрезку можно выполнять по-разному: если с первого символа слева, то применяют не strip, а lstrip, если справа, то rstrip (с конца строки, если интересует последний символ).

Индексы

В «Питоне» у каждого символа есть свой номер — индекс. Если разработчика интересует поиск какого-нибудь символа, к нему можно обратиться. Код ниже возвращает индекс для каждого символа из слова Otus:

Тут важен один момент: индексация начинается не с единицы, а с нуля, поэтому первый символ имеет индекс 0.

Дополнительно: преобразование символа в целое число

Компьютеры хранят все данные в виде цифр, и символьных данных это тоже касается. Для представления символов строкового типа String применяют схему перевода. Самая простая из них — ASCII. Если нужно вернуть число для какого-нибудь конкретного символа, используют функцию ord. К примеру, для символа «a» кодовое значение по ASCII будет равняться 97, а для «#» — 35.

Кроме ASCII, также широко известен Unicode, который тоже поддерживается «Питоном».

Строки — Основы языка Python

С первыми двумя все понятно, это точно строки, мы уже работали с подобными конструкциями и говорили, что строки — это наборы символов. Любой одиночный символ в кавычках — это строка. Пустая строка '' — это тоже строка. То есть строкой мы считаем всё, что находится внутри кавычек, даже если это пробел, один символ или вообще отсутствие символов.

Ранее в уроках мы записывали строки в одинарных кавычках, но это не единственный способ. Можно использовать и двойные:

Теперь представьте, что вы хотите напечатать строчку Dragon's mother. Апостроф перед буквой s — это такой же символ, как одинарная кавычка. Попробуем:

Такая программа не будет работать. С точки зрения Python строчка началась с одинарной кавычки, а потом закончилась после буквы n. Дальше были символы s mother без кавычек — значит, это не строка. А потом была одна открывающая строку кавычка, которая так и не закрылась: ') . Этот код синтаксически некорректен (это видно даже по тому, как подсвечен код).

Здесь нам помогут именно двойные кавычки. Такой вариант программы отработает корректно:

Теперь интерпретатор знает, что строка началась с двойной кавычки — значит и закончиться должна на двойной кавычке. А одинарная кавычка внутри стала частью строки. Верно и обратное. Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо делать в одинарных. Причем количество кавычек внутри самой строки не важно.

А что, если мы хотим создать такую строку:

В ней есть и одинарные и двойные кавычки. Как быть в этой ситуации? Нужно каким-то образом указать интерпретатору считать каждую кавычку частью строки, а не началом или концом строки.

Для этого используют символ экранирования: \ (обратный слэш). Если поставить \ перед кавычкой (одинарной или двойной), это скажет интерпретатору о том, что кавычку нужно рассматривать не как начало или конец строки, а как часть строки.

Посмотрите внимательно: нам нужно было добавить \ для двойных кавычек, но не для одинарной (апостроф), потому что сама строка создана с двойными кавычками. Если бы строка создавалась с одинарными кавычками, то символ экранирования нужен был бы перед апострофом, но не перед двойными кавычками.

А что, если нужно вывести сам обратный слеш? Точно так же, как и любой другой специальный символ, его надо экранировать самим собой.

Экранированные последовательности

Мы хотим показать вот такой диалог:

Если вывести на экран строку с таким текстом:

Не то, что мы хотели. Строки расположены друг за другом, а не одна ниже другой. Нам нужно как-то сказать интерпретатору «нажать на энтер» — сделать перевод строки после вопросительного знака. Это можно сделать, используя символ перевода строки: \n .

\n — это пример экранированной последовательности (escape sequence). Их еще называют управляющими конструкциями. Эти конструкции не являются видимой частью строки, их нельзя увидеть глазами в том же виде, в котором они были набраны.

Набирая текст в каком-нибудь Word, вы нажимаете на Enter в конце строчки. Редактор при этом ставит в конец строчки специальный невидимый символ, который называется LINE FEED (LF, перевод строчки). В некоторых редакторах можно даже включить отображение невидимых символов. Тогда текст будет выглядеть примерно так:

Устройство, которое выводит соответствующий текст, учитывает этот символ. Например, принтер при встрече с LF протаскивает бумагу вверх на одну строку, а текстовый редактор переносит весь последующий текст ниже, также на одну строку.

Хотя таких символов не один десяток, в программировании часто встречаются всего несколько. Кроме перевода строки, к таким символам относятся табуляция \t (разрыв, получаемый при нажатии на кнопку Tab) и возврат каретки \r (только в Windows). Распознать управляющую конструкцию в тексте проще всего по символу \ . Нам, программистам, часто нужно использовать, например, перевод строки \n для правильного форматирования текста.

На экран выведется:

Обратите внимание на следующие моменты:

    Не имеет значения, что стоит перед или после \n : символ или пустая строка. Перевод будет обнаружен и выполнен в любом случае.

Помните, что строка может содержать лишь один символ или вообще ноль символов? А еще строка может содержать только \n :

Здесь мы выводим одну строку с именем, потом одну строку «перевод строки», а потом еще одну строку. Программа выведет на экран:

Несмотря на то, что в исходном тексте программы последовательность типа \n выглядит как два символа, с точки зрения интерпретатора это специальный один символ.

Если нам понадобится вывести \n именно как текст (два отдельных печатных символа), то можно воспользоваться уже известным нам способом экранирования, добавив еще один \ в начале. То есть последовательность \\n отобразится как символы \ и n , идущие друг за другом.

Небольшое, но важное замечание про Windows. В Windows для перевода строк по умолчанию используется \r\n . Такая комбинация хорошо работает только в Windows, но создает проблемы при переносе в другие системы (например, когда в команде разработчиков есть пользователи как Windows, так и Linux). Дело в том, что последовательность \r\n имеет разную трактовку в зависимости от выбранной кодировки (рассматривается позже). По этой причине в среде разработчиков принято всегда использовать \n без \r , так как LF всегда трактуется одинаково и отлично работает в любой системе. Не забудьте настроить ваш редактор на использование \n .

Конкатенация

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

Склеивание строк всегда происходит в том же порядке, в котором записаны операнды. Левый операнд становится левой частью строки, а правый — правой. Вот еще несколько примеров:

Как видите, строки можно склеивать, даже если они записаны с разными кавычками.

Пробел — такой же символ, как и другие, поэтому сколько пробелов поставить в строке, столько и получится в итоговой строке:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *