Как сделать пробел в python

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

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

2. Точки с запятой

Не разделяйте ваши строки с помощью точек с запятой и не используйте точки с запятой для разделения команд, находящихся на одной строке.

3. Скобки

Используйте скобки экономно. Не используйте их с выражением return или с условной конструкцией, если не требуется организовать перенос строки. Однако скобки хорошо использовать для создания кортежей.

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

4.1 Пробелы и скобки

4.1.1 Не ставьте пробелы внутри каких-либо скобок (обычных, фигурных и квадратных).

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

Хорошо Плохо Хорошо Плохо

4.2 Пробелы рядом с запятой, точкой с запятой и точкой

4.2.1 Перед запятой, точкой с запятой либо точкой не должно быть никаких пробелов. Используйте пробел после запятой, точки с запятой или точки (кроме того случая, когда они находятся в конце строки).

4.3 Пробелы вокруг бинарных операторов

4.3.1 Окружайте бинарные операторы одиночными пробелами с каждой стороны. Это касается присваивания ( = ), операторов сравнения ( == , , > , != , <> , , >= , in , not in , is , is not ), и булевых операторов ( and , or , not ). Используйте, как вам покажется правильным, окружение пробелами по отношению к арифметическим операторам, но расстановка пробелов по обеим сторонам бинарного оператора придает целостность коду.

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

4.3.3 Не используйте пробелы по сторонам знака = , когда вы используете его, чтобы указать на именованный аргумент или значение по умолчанию.

5. Длина строк

Ограничивайте длину строк 79 символами (а длину строк документации и комментариев — 72 символами). В общем случае не используйте обратный слеш в качестве перехода на новую строку. Используйте доступное в Python явное объединение строк посредством круглых и фигурных скобок. Если необходимо, можно добавить дополнительную пару скобок вокруг выражения.

Если ваш текст не помещается в одну строку, используйте скобки для явного объединения строк.

Что касается длинных URL в комментариях, то располагайте их, если это необходимо, на одной строке.

Обратный слеш иногда используется. Например, с длинной конструкцией with для переноса блока инструкций.

Ещё один подобный случай — длинные assert .

6. Пустые строки

Отделяйте функции (верхнего уровня, не функции внутри функций) и определения классов двумя пустыми строками. Определения методов внутри класса отделяйте одной пустой строкой. Две пустые строки должны быть между объявлениями верхнего уровня, будь это класс или функция. Одна пустая строка должна быть между определениями методов и между объявлением класса и его первым методом.

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

Python расценивает символ control+L как незначащий (whitespace), и вы можете использовать его, потому что многие редакторы обрабатывают его как разрыв страницы — таким образом, логические части в файле будут на разных страницах. Однако не все редакторы распознают control+L и могут на его месте отображать другой символ.

7. Имена

Имена, которых следует избегать:

7.1 Имена функций

Имена функций должны состоять из маленьких букв, а слова разделяться символами подчеркивания — это необходимо, чтобы увеличить читабельность.

Стиль mixedCase допускается в тех местах, где уже преобладает такой стиль — для сохранения обратной совместимости.

7.2 Имена модулей и пакетов

Модули должны иметь короткие имена, состоящие из маленьких букв. Можно использовать символы подчёркивания, если это улучшает читабельность. То же самое относится и к именам пакетов, однако в именах пакетов не рекомендуется использовать символ подчёркивания.

Так как имена модулей отображаются в имена файлов, а некоторые файловые системы являются нечувствительными к регистру символов и обрезают длинные имена, очень важно использовать достаточно короткие имена модулей — это не проблема в Unix, но, возможно, код окажется непереносимым в старые версии Windows, Mac, или DOS.

7.3 Имена классов

Все имена классов должны следовать соглашению CapWords почти без исключений.

Иногда вместо этого могут использоваться соглашения для именования функций, если интерфейс документирован и используется в основном как функции.

Обратите внимание, что существуют отдельных соглашения о встроенных именах: большинство встроенных имен — одно слово (либо два слитно написанных слова), а соглашение CapWords используется только для именования исключений и встроенных констант.

Так как исключения являются классами, к исключениями применяется стиль именования классов. Однако вы можете добавить Error в конце имени (если, конечно, исключение действительно является ошибкой).

7.4 Имена констант

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

8. Комментарии

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

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

Ставьте два пробела после точки в конце предложения.

Если вы — программист, не говорящий по-английски, то всё равно следует использовать английский язык для написания комментариев. Особенно, если нет уверенности на 120% в том, что этот код будут читать только люди, говорящие на вашем родном языке.

8.1 Блоки комментариев

8.2 Комментарии в строке с кодом

Старайтесь реже использовать подобные комментарии.

Комментарии в строке с кодом не нужны и только отвлекают от чтения, если они объясняют очевидное.

8.3 Строки документации

Соглашения о написании хорошей документации (docstrings) зафиксированы в PEP 257.

Пишите документацию для всех публичных модулей, функций, классов, методов. Строки документации необязательны для приватных методов, но лучше написать, что делает метод. Комментарий нужно писать после строки с def .

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

Для однострочной документации можно оставить """ на той же строке.

9. Циклы

9.1 Циклы по спискам

Если нам необходимо в цикле пройти по всем элементам списка, то хорошим тоном (да и более читаемым) будет такой способ:

И хотя бывалые программисты или просто любители C могут использовать и такой код, это моветон.

А если нужно пройти по списку задом наперед, то лучше всего использовать метод reversed:

Вместо того чтобы писать избыточный код, который и читается-то не очень внятно.

9.2 Циклы по списку чисел

Если есть необходимость пройти в цикле по ряду чисел, то метод range будет намного приемлемее, как минимум потому, что этот метод потребляет намного меньше памяти, чем вариант в блоке "Плохо". А представьте, что у вас ряд из трёх миллиардов последовательных чисел!

9.3 Циклы по спискам с индексами

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

9.4 Циклы по двум спискам

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

10. Импорты

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

В то же время, можно писать так:

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

  • импорты из стандартной библиотеки,
  • сторонние импорты,
  • импорты из библиотек вашего приложения.

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

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

Следует избегать шаблонов импортов ( from import * ), так как они делают неясным то, какие имена присутствуют в глобальном пространстве имён, что вводит в заблуждение как читателей, так и многие автоматизированные средства.

Рекомендуем также ознакомиться с полной версией соглашения о том, как писать код на Python (PEP 8)

Струнные манипуляции – одна из тех действий в программировании, которые мы, как программисты, делаем все время. Во многих языках программирования вы должны сделать много тяжелого подъема самостоятельно. В Python, с другой стороны, у вас есть несколько встроенных функций в стандартной библиотеке, чтобы помочь вам манипулировать строками во многих различных способах. В этой статье я покажу вам, как работать с строками, специально наряду с некоторыми приятными трюками. Быстрая информация: Вы можете скачать PDF версию этого Python String Manipulation Handbook здесь Отказ Готов погрузиться в?

Оглавление

Основы строки Python

текст Тип является одним из наиболее распространенных типов и часто называют строка Или, в Python, просто ул . | Отказ

Как объединять строки

Вы можете использовать + Оператор к объединенным строкам.

ConcateNation – это когда у вас есть две или более строки, и вы хотите присоединиться к ним в один.

Как выбрать CHAR

Чтобы выбрать CHAR, используйте [] и укажите положение CHAR.

Положение 0 относится к первой позиции.

Как получить размер строки

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

Как заменить часть строки

Рио означает реку на португальском и Мар означает море – просто так вы знаете, что я не выбрал эту замену так случайно.

Как считать

Укажите, что рассчитывать как аргумент.

Как повторить строку

Вы можете использовать * Символ, чтобы повторить строку.

Как разделить строку в Python

Разделение струны на более мелкие части – это очень распространенная задача. Для этого мы используем Сплит () Метод в Python.

Давайте посмотрим некоторые примеры о том, как это сделать.

Пример 1: используйте пробелы в качестве разделителей

В этом примере мы разделяем фразу на пробеле, создавая список с именем my_words с пятью элементами, соответствующими каждому слову в фразе.

Обратите внимание, что по умолчанию Сплит () Метод использует любое последовательное количество пробелов в качестве разделителей. Мы можем изменить код выше:

Выход то же самое, так как у нас есть только один пробел между каждым словом.

Пример 2: пройти разные аргументы в качестве разделителей

При работе с данными очень часто читают некоторые файлы CSV для извлечения информации от них.

Таким образом, вам может потребоваться сохранить некоторые конкретные данные из определенного столбца.

Как удалить все белые пробелы в строке в Python

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

Вам нужно импортировать Re Модуль, который обеспечивает регулярные экспрессии.

Обратите внимание, что \ S представляет не только пространство '' , но и форма корма \ f , линия подачи \ N перевозка возврата \ R , вкладка \ T и вертикальная вкладка \ v Отказ

Таким образом, \ s = [\ f \ n \ r \ t \ v] Отказ

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

Как обрабатывать многослойные строки в Python

Тройные цитаты

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

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

Сейчас так же, как и раньше, но с одиночными цитатами:

Обратите внимание, что оба выхода одинаковы.

Круглые скобки

Давайте посмотрим пример с круглыми скобками.

Как видите, результат не то же самое. Для достижения новых строк я должен добавить \ N , как это:

Вершины

Наконец, обратные косания также являются возможностью.

Уведомление нет места после \ персонаж, как он бросил бы ошибку.

lstrip (): как удалить пробелы и символы с начала строки в Python

Используйте lstrip () Способ удаления пробелов с начала строки.

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

Как удалить символы

lstrip () Метод также принимает определенные символы для удаления в качестве параметров.

RSTRIP (): Как удалить пробелы и символы с конца строки в Python

Используйте RSTRIP () Способ удаления пробелов с конца строки.

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

RSTRIP () Метод также принимает определенные символы для удаления в качестве параметров.

Стрип (): как удалить пробелы и символы с начала и конца строки в Python

Используйте полоса () Способ удаления пробелов с самого начала и конца строки.

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

полоса () Метод также принимает определенные символы для удаления в качестве параметров.

Как сделать целый ряд строчной буквы в Python

Используйте ниже () Способ преобразования целой строки в строчные буквы.

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

Как сделать целый строковый прописными буквами в Python

Используйте Верхний () Способ преобразования целой строки в прописные буквы.

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

Как использовать титульный случай в Python

Используйте Название () Способ преобразования первой буквы в каждое слово в верхний регистр и остальные символы в нижний регистр.

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

Как использовать чехол Swap в Python

Используйте Свапка () Способ преобразования верхних символов регистра в нижний регистр и наоборот.

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

Как проверить, пустая строка в Python

Питоновый способ проверить, если строка пусто использует не оператор.

Чтобы проверить напротив и посмотреть, является ли строка не Пусто, сделайте это:

Rjust (): как правильно озвучить строку в Python

Используйте Rjust () направо – оправдать строку.

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

Rjust () Также принимает определенный символ в качестве параметра для заполнения оставшегося пространства.

Ljust (): как оставить – обосновать строку в Python

Используйте ljust () покинуть – оправдать строку.

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

ljust () Также принимает определенный символ в качестве параметра для заполнения оставшегося пространства.

Isalnum (): Как проверить буквенно-цифровые символы только в строке в Python

Используйте Isalnum () Метод проверки, содержит ли строка только буквенно-цифровые символы.

ISPRINTABLE (): Как проверить для печатных игр в строке в Python

Используйте Isprintable () Метод проверки, являются ли символы в строке печати.

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

Последний пример возвращается Ложь Показаны 5 видов символов, которые непечатаются: Form Feed \ f , линия подачи \ N перевозка возврата \ R , вкладка \ T и вертикальная вкладка \ v Отказ

ISSPACE (): Как проверить белое пространство только в строке в Python

Используйте ISSPACE () Метод проверки, являются ли символы в строке все белые пробелы.

Уведомление во втором примере того, что белое пространство не только '' , но и форма корма \ f , линия подачи \ N перевозка возврата \ R , вкладка \ T и вертикальная вкладка \ v Отказ

StartSwith (): Как проверить, начинается ли строка с определенного значения в Python

Используйте StartSwith () Метод проверки, начинается ли строка с определенного значения.

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

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

Capitalize (): Как установить первый персонаж только в верхний регистр в строке в Python

Используйте капитализировать () Способ преобразования в верхний регистр только первый символ в строке.

Остальная часть строки преобразуется в нижний регистр.

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

Isupper (): Как проверить на верхний регистр только в строке в Python

Используйте Isupper () Метод проверки, если символы в строке все в верхнем регистре.

Если вы заметите последний пример, номера и специальные символы, такие как @ и $ В строке не имеют никакой разницы и Isupper () все еще возвращается Правда Поскольку метод проверяет только алфавитные символы.

Основной синтаксис: rings.join (потенциал)

Согласно синтаксису выше, строка требуется в качестве сепаратора.

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

Давайте посмотрим некоторые примеры с: строка, список, кортеж, набор и словарь

Присоединиться (): строки

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

Он объединяет все предметы в списке и ставит $ знак между ними.

При попытке объединить int Элементы, ошибка поднимается.

Присоединиться (): кортежи

Текет следует за тем же обоснованным, поскольку пример списка объясняется ранее.

Опять же, я использую $ Знак как сепаратор.

Присоединиться (): наборы

Поскольку набор также такой же, как кортеж и список, я использовал другой сепаратор в этом примере.

Присоединиться (): словари

В этом примере показано конконтрация клавиш.

Сплитлины (): Как разделить строку на перерывах линии в Python

Используйте Сплитлины () Способ разделить строку на разрывах линии.

Возвращение метода представляет собой список линий.

Если вы хотите сохранить перерыв линии, Сплитлины () Принимает параметр, который можно установить на Правда , по умолчанию есть Ложь Отказ

islower (): Как проверить на нижний регистр только в строке в Python

Используйте islower () Метод проверки. Если символы в строке все в нижнем регистре.

Если вы заметите в последнем примере, номера и специальные символы, такие как @ и $ В строке не имеют никакой разницы и islower () все еще возвращается Правда Поскольку метод проверяет только алфавитные символы.

ISNUMERIC (): Как проверить числовые численности только в строке в Python

Используйте Isnumeric () Метод проверки, содержит ли строка только числовые символы.

Числовые включают число от 0 до 9 и комбинации их, римских цифр, суперскрипет, подписку, фракций и других вариаций.

isdecimal () более строгим, чем Isdigit () , который в свою очередь строчен, чем Isnumeric () Отказ

ISDIGIT (): Как проверить цифры только в строке в Python

Используйте Isdigit () Метод проверки, содержит ли строка только цифры.

Цифры включают номера от 0 до 9, а также Superscripts и подписи.

isdecimal () более строгим, чем Isdigit () , который в свою очередь строчен, чем Isnumeric () Отказ

Isdecimal (): Как проверить десятичные дроби только в строке в Python

Используйте isdecimal () Способ проверки, если строка содержит только десятичные дроби, то есть только номера от 0 до 9 и комбинации этих чисел.

Подписки, суперскрипты, римские цифры и другие вариации будут возвращены как Ложь Отказ

isdecimal () больше строго, чем Isdigit () , который в свою очередь более строгим, чем Isnumeric () Отказ

ISALPHA (): Как проверить буквы только в строке в Python

Используйте Isalpha () Способ проверки, содержит ли строка только буквы.

Istitle (): Как проверить, начинается ли каждое слово с верхнего регистра в строке в Python

Используйте ISTITLE () Метод проверки Если первый символ в каждом слове в строке является прописным регистром, а другие символы строчные.

Если вы заметите в последнем примере, номера и специальные символы, такие как @ и $ В строке не имеют никакой разницы и ISTITLE () все еще возвращается Правда Поскольку метод проверяет только алфавитные символы.

ExpandTabs (): Как установить количество пробелов для вкладки в строке в Python

Используйте ExpandTabs () Метод для установки количества пробелов для вкладки.

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

Базовое использование

Обратите внимание на 7 пробелов между буквами B и R.

\ T находится в положении два после одного символа, поэтому он будет заменен на 7 пробелов.

Давайте посмотрим на другой пример.

С Мир имеет четыре персонажа, \ T Заменяется 4 пробелами, чтобы сделать его в общей сложности 8, размер вкладки по умолчанию.

Пользовательские табуляции

Можно установить TABSIZE по мере необходимости.

В этом примере Tabsize IS 4 , что дает нам 3 пространства после CHAR ‘B’.

Этот код имеет TABSIZE, установленный на 6 , что дает нам 5 пробелов после Char ‘B’.

Центр (): Как центрировать строку в Python

Используйте Центр () Способ для центра строки.

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

Центр () Также принимает определенный символ в качестве параметра для заполнения оставшегося пространства.

zfill (): Как добавить нули в строку в Python

Используйте zfill () Вставить нули 0 в начале строки.

Количество нулей дается числом, прошедшим, как аргумент, минус количество символов в строке.

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

Также обратите внимание, что если аргумент меньше, чем количество символов в строке, ничего не меняется.

Найти (): Как проверить, имеет ли строка определенную подстроку в Python

Используйте Найти () Метод проверки, имеет ли строка определенную подстроку.

Метод возвращает индекс первого вхождения данного значения.

Помните, что счет индекса начинается в 0.

Если значение не найдено, он вернется -1 Отказ

Вы также можете начать поиск в определенную позицию и завершить его в другом определенном положении строки.

Как удалить префикс или суффикс в строке в Python

С Python 3.9 тип строки будет иметь два новых метода.

Вы можете специально удалить префикс из строки с помощью RemovePrefix () Метод:

Или удалить суффикс, используя RemoSuffix () Метод:

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

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

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

lstrip () vs readleprefix () и rstrip () vs removeuffix ()

Это вызывает путаницу для многих людей.

Легко посмотреть на lstrip () и RemovePrefix () И удивляйтесь, какая реальная разница между ними.

При использовании lstrip () Аргумент – это набор ведущих персонажей, которые будут удалены столько раз, сколько они возникают:

В то время как RemovePrefix () Удалю только точное совпадение:

Вы можете использовать ту же обоснование, чтобы различать RSTRIP () и RemoSuffix () Отказ

И как бонус, на всякий случай, если вы никогда не работали с регулярными выражениями раньше, будьте благодарны, что у вас есть полоса () Обрезать наборы символов из строки вместо регулярного выражения:

Как нарезка работает в Python

Нарезка является одним из самых полезных инструментов на языке Python.

Таким образом, важно иметь хорошее понимание того, как это работает.

Основная нажатие на нарезю

  • Начать: Где вы хотите нажатие на наличие
  • Стоп: до тех пор, пока вы хотите, чтобы наслаиться, но помните ценность Стоп не включен
  • Шаг: Если вы хотите пропустить элемент, то использование по умолчанию 1, поэтому вы проходите все элементы в массиве

Индексы

Когда нарезка, индексы указываются в между персонажи, не на персонажах.

Поскольку строка – это просто список символов, то же самое относится к списку:

Примеры нарезки в Python

Все приведенные ниже примеры будут применены к этому слову.

Пример 1.

Чтобы получить первые два персонажа:

Обратите внимание, что мы могли бы использовать 0 для обозначения начала, но это не нужно.

Пример 2.

Пример 3.

Пропуская буквы с шагом 2:

Как изменить строку в Python

Чтобы изменить строку, используйте синтаксис ломтика:

Slice Syntax позволяет вам установить шаг, который является -1 в примере.

Шаг по умолчанию – 1 То есть идти вперед 1 символ струны за раз.

Если вы установите шаг в -1 У вас есть противоположное, верните 1 символ за раз.

Таким образом, вы начинаете в положении последнего символа и двигайтесь назад к первому символу в положении 0.

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

Что такое строка в Python?

Строка Python – это набор символов, заключенных в одинарные, двойные или тройные кавычки. Компьютер не понимает персонажей; внутри он хранит манипулируемый символ как комбинацию нулей и единиц.

Каждый символ кодируется символом ASCII или Unicode. Таким образом, мы можем сказать, что строки Python также называются набором символов Unicode.

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

Рассмотрим следующий пример на Python для создания строки.

Проверим тип переменной str с помощью скрипта

В Python строки рассматриваются как последовательность символов, что означает, что Python не поддерживает символьный тип данных; вместо этого одиночный символ, записанный как ‘p’, рассматривается как строка длины 1.

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

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

Индексирование и разбивка строк

Индексирование строк Python

Рассмотрим следующий пример:

Как показано в Python, оператор slice [] используется для доступа к отдельным символам строки. Однако мы можем использовать оператор:(двоеточие) в Python для доступа к подстроке из данной строки. Рассмотрим следующий пример.

Доступ к подстроке

Здесь мы должны заметить, что верхний диапазон, указанный в операторе среза, всегда является исключающим, т.е. если задано str = ‘HELLO’, тогда str [1: 3] всегда будет включать str [1] = ‘E’, str [2 ] = ‘L’ и ничего больше.

Рассмотрим следующий пример:

Мы можем сделать отрицательную нарезку строки; она начинается с крайнего правого символа, который обозначается как -1. Второй крайний правый индекс указывает -2 и так далее. Рассмотрим следующее изображение.

Отрицательная нарезка строки

Рассмотрим следующий пример:

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

Обновить содержимое строк так же просто, как присвоить его новой строке. Строковый объект не поддерживает присвоение элемента, т. е. строка может быть заменена только новой строкой, поскольку ее содержимое не может быть частично заменено. Строки неизменяемы в Python.

Рассмотрим следующий пример.

Однако в примере 1 строку str можно полностью присвоить новому содержимому, это указано в следующем примере.

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

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

Теперь мы удаляем всю строку.

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

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

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

Управляющая последовательность

Предположим, нам нужно написать текст – They said, “Hello what’s going on?” – данный оператор может быть записан в одинарные или двойные кавычки, но он вызовет ошибку SyntaxError, поскольку он содержит как одинарные, так и двойные кавычки.

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

Мы можем использовать тройные кавычки для решения этой проблемы, но Python предоставляет escape-последовательность.

Символ обратной косой черты(/) обозначает escape-последовательность. За обратной косой чертой может следовать специальный символ, который интерпретируется по-разному. Одиночные кавычки внутри строки должны быть экранированы. Мы можем применить то же самое, что и в двойных кавычках.

Список escape-последовательностей приведен ниже:

Вот простой пример escape-последовательности.

Мы можем игнорировать escape-последовательность из данной строки, используя необработанную строку. Мы можем сделать это, написав r или R перед строкой. Рассмотрим следующий пример.

Метод format()

Метод format() – самый гибкий и полезный метод форматирования строк. Фигурные скобки <> используются в качестве заполнителя в строке и заменяются аргументом метода format(). Посмотрим на данный пример:

Форматирование строки Python с использованием оператора %

Python позволяет нам использовать спецификаторы формата, используемые в инструкции printf языка C. Спецификаторы формата в Python обрабатываются так же, как и в C. Однако Python предоставляет дополнительный оператор%, который используется в качестве интерфейса между спецификаторами формата и их значениями. Другими словами, мы можем сказать, что он связывает спецификаторы формата со значениями.

Рассмотрим следующий пример.

Строковые функции Python

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

Общие замечания¶

Это руководство - о логике программирования. Важно следовать этому руководству в стиле программы.
Ещё более важна логичность всего проекта. Логичность в пределах одного модуля или функции - важнейшее требование. Но важнее всего знать, когда отступить от стиля и логичности. Иногда это руководство просто неприменимо. Если вы затрудняетесь, посмотрите на примеры и решите, что лучше.

Разметка¶

Отступы¶

Используйте параметры по умолчанию: 4 пробела на один отступ. Для очень старого кода, в который вы не желаете сильно вмешиваться, можете можете продолжать использовать отступы в 8 символов.

Табуляция или пробелы?¶

Никогда не смешивайте пробелы с табуляцией. Самый популярный способ отступов в Питоне - использовать только пробелы. Второй самый популярный способ - только табуляторы. Код, в котором отступы пробелами и табуляторами перемешаны, надо перевести к отступам пробелами. Когда вы запускаете Питон с параметром -t , то при использовании смешанных отступов выдаются предупреждения; если задать опцию -tt , то предупреждения станут ошибками. Использование этих опций очень рекомендуется!

Максимальная длина строки¶

До сих пор существует много устройств, длина строки в которых ограничена 80-ю символами. Поэтому, пожалуйста, установите максимальную длину для всех строк 79 символов.

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

Пустые строки¶

Отделяйте функции верхнего уровня и объявления классов двумя пустыми строками. Определения методов внутри класса отделяются одной пустой строкой. Дополнительно пустые строки можно использовать для отделения групп родственных функций. Пустые строки можно опускать внутри связки из одностроковых определений (набора абстрактных методов).
Если пустые строки используются для отделения методов в классе, то вставляйте также пустую строку между строкой "class. " и определением первого метода.
Используйте пустые строки в функциях для указания логических блоков, но не переусердствуйте.

Пробелы в выражениях и операторах¶

  • Сразу после скобок:
    Всегда пишите так:
  • Непосредственно перед двоеточием, точкой с запятой, запятой:
    Всегда пишите:
  • Перед открывающей скобкой при вызове функции:
    Всегда пишите:
  • Перед открывающими скобками индекса или разреза:
    Всегда пишите:
  • Более чем один пробел вокруг присваивания или другого оператора:
    Всегда пишите так:

Другие рекомендации¶

  • присваивание
  • сравнения (==, , !=, <>, =, in, not in, is, is not),
  • Булевы (and, or, not).

Используйте наилучший по вашему мнению выбор при вставке пробелов вокруг арифметических операторов. Всегда будьте последовательны при вставке пробелов в обоих частях бинарного оператора:

Не используйте пробелы вокруг знака '=' в случае указания значения по умолчанию:

Комментарии¶

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

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

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

Используйте два пробела после точки в конце предложения.

Если вы на 120% не уверены, что ваш код никогда не будут читать люди, не говорящие на вашем языке, - пишите по-английски.

Блоковые комментарии¶

Внутристроковые комментарии¶

Внутристроковые комментарии излишни и отвлекают, если их значение и так очевидно:

Но иногда может быть полезно:

Строки документации¶

Все модули, как правило, имеют строки документации. Все функции и классы, экспортируемые из модуля, также должны иметь строки документации.
Публичные методы (включая конструктор init) тоже должны иметь строки документации.

Строки документации должны быть написаны в стиле "Usage" - информации, которая обычно выдается программами на экран при вызове с ключом -h или -help.

Всегда используйте """тройные сдвоенные кавычки""" для выделения строк документации.

Есть два вида строк документации - однострочные и многостроковые.

Одностроковые

  • Используйте """тройные сдвоенные кавычки"""
  • закрывающие кавычки на той же строке
  • никаких пустых строк до или после комментария
  • Фраза заканчивается точкой.
  • Пишите в стиле команды, приказа ('''Сделать''' это, '''вернуть''' то-то).
  • Никогда не пишите что-то типа "Функция возвращает. "

Многостроковые

Начинаются одной обобщающей строкой, за которой следует пустая строка и более полное описание.

Рекомендуется перед закрывающими тройными кавычками вставлять пустую строку.
Каждый аргумент лучше начинать с новой строки и отделять от описания двумя тире:

Поддержка контроля версий

Если вы используете RCS или CVS, то пишите следующим образом:

Вставляйте это после строк документации перед началом кода, отделяя сверху и снизу пустой строкой.

Именование¶

Способы именования в библиотеках Питона - это всегда маленький хаос. Здесь никогда не будет полной логичности и порядка. Тем не менее дадим несколько рекомендаций.

Стили именования¶

Стили предписаний¶

Названия модулей

Имена модулей можно писать в стиле "MixedCase" или "lowercase".
Модули, которые экспортируют один класс, обычно называют в стиле MixedCase, а имя модуля совпадает с именем класса (например, стандартный модуль StringIO).
Модули, которые экспортируют множество функций, обычно называют в стиле lowercase.

В случае когда модуль расширения написанный на C или C++ имеет сопровождающий его модуль на Питоне, который представляет собой интерфейс высокого уровня (объектно ориентированный), питоновский модуль называют в виде "ModuleName", а модуль C/C++ - "_modulename".

Class Names

Имена классов обычно используют стиль "CapWords". Классы для внутреннего пользования начинаются с подчеркивания.

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