Шпаргалка по строкам (str) в Python
Строки являются неизменяемыми упорядоченными коллекциями.
Строковые литералы
s = 'string' # 'string' s = "string" # 'string' s = str(123) # '123'
s = '''1 2 3''' s = """1 2 3""" # 1 # 2 # 3
Ввод из консоли
Записывает строки из стандартного ввода. str — текст, который выводится в консоль перед вводом.
Более быстрая версия. Можно ограничить максимум считываемых символов, указав n .
Вариации строк
r» — сырые строки. Подавляют экранирование.
f» — форматированные строки (f-строки).
Операции со строками
Способ | Пример | Результат |
---|---|---|
Конкатенация | ‘a’ + ‘b’ | ‘ab’ |
Дублирование | ‘a’ * 3 | ‘aaa’ |
Взятие по индексу | ‘abc'[1] | ‘b’ |
Срезы | ‘abcde'[3:1:-1] | ‘dc’ |
Форматирование строк
Стандартные средства
Способ | Пример |
---|---|
оператор % | «Принято: %a шт. Отправлено: %d шт.» % (x, y) |
format() | «Принято: <> шт. Отправлено: <> шт.».format(x, y) |
f-строки | f»Принято: шт. Отправлено: шт.» |
Шаблоны
from string import Template t = Template('Принято: $x шт. Отправлено: $y шт.') t.substitute(x=2, y=1) # Принято: 2 шт. Отправлено: 1 шт.
Служебные символы
Символ | Назначение | Пример | Результат |
---|---|---|---|
\n | Перевод строки | ‘ab \n cd’ | ab |
cd | |||
\ | Экранирование | ‘ab \\ ncd’ | ab\ncd |
\a | Звонок | ‘a \a a’ | aa |
\b | Забой | ‘ab \b a’ | ac |
\f | Перевод страницы | ‘a \f a’ | a a |
\r | Возврат каретки | ‘ab \r cd’ | cd |
\t | Горизонтальная табуляция | ‘a \t a’ | a a |
\v | Вертикальная табуляция | ‘a \v a’ | a a |
\N | Символ Юникода по id | ‘ \N ‘ | ° |
\uhhhh | 16-ричный символ Юникода | ‘ \u2030 ‘ | ‰ |
\Uhhhh… | 32-ичный символ Юникода | ‘ \U00000394 ‘ | Δ |
\xhh | 16-ричное значение символа | ‘ \x2A ‘ | * |
\ooo | восьмеричное значение символа | ‘ /275 ‘ | ½ |
\0 | символ Null | ‘ \0 ‘ |
Методы строк
Метод | Назначение |
---|---|
s.capitalize() | переводит первую букву в верхний, а остальные в нижний регистр. |
s.casefold() | переводит все символы в нижний регистр |
s.center(width[, fillvalue]) | обрамляет значениями fillvalue строку, пока длина не станет width |
s.count(str[, start][, end] | считает количество подстрок str в выбранном промежутке строки |
s.encode(encoding, errors) | меняет кодировку строки |
s.endswith(suffix[, start][, end]) | возвращает True если строка заканчивается на suffix , иначе False |
s.expandtabs(tabsize=8) | увеличивает размер символов табуляции до tabsize пробелов |
s.find(str[, start][, end]) | возвращает индекс начала первой подстроки str в выбранном промежутке или -1 , если она не найдена |
s.format(args, *kwargs) | последовательно заменяет <> в строке на свои аргументы |
s.format_map(dict) | заменяет > в строке на dict[] |
s.index(str[, start][, end]) | возвращает индекс начала первой подстроки str в выбранном промежутке или ValueError , если она не найдена |
s.isalnum() | возвращает True , если строка состоит только из букв и цифр, иначе False |
s.isalpha() | возвращает True , если строка состоит только из букв, иначе False |
s.isdecimal() | возвращает True , если строка состоит только из цифр, иначе False [1] |
s.isdigit() | возвращает True , если строка состоит только из цифр, иначе False [1] |
s.isidentifier() | возвращает True , если строка является идентификатором ( if , class , assert ), иначе False |
s.islower() | возвращает True , если вся строка в нижнем регистре, иначе False |
s.isnumeric() | возвращает True , если строка состоит только из цифр, иначе False [1] |
s.isprintable() | возвращает True , если все символы строки отображаются, иначе False (например, \n , \t ) |
s.isspace() | возвращает True , если строка состоит из пробелов, иначе False |
s.istitle() | возвращает True , если строка начинается с заглавной буквы, а остальные — строчные, иначе False |
s.isupper() | возвращает True , если строка в верхнем регистре, иначе False |
s.join(iter) | склеивает элементы последовательности iter в одну строку с разделителем s |
s.ljust(width, fillchar=’ ‘) | добавляет в конец строки символ fillchar , пока длина не станет width |
s.lower() | переводит символы строки в нижний регистр |
s.lstrip([chars]) | возвращает строку без пробельных символов или chars в начале |
s.maketrans(*args) | возвращает таблицу перевода для s.translate |
s.partition(sep) | разделяет строку на три части по первому разделителю sep : [начало, sep , конец] |
s.replace(old, new) | заменяет все подстроки old на new |
s.rfind(str[, start][, end]) | возвращает индекс начала последней подстроки str в выбранном промежутке или -1 , если она не найдена |
s.rindex(str[, start][, end]) | возвращает индекс начала последней подстроки str в выбранном промежутке или ValueError , если она не найдена |
s.rjust(width, fillchar=’ ‘) | добавляет в начало строки символ fillchar , пока длина не станет width |
s.rpartition() | разделяет строку на три части по последнему разделителю sep : [начало, sep , конец] |
s.rsplit(sep=’ ‘, maxsplit=-1) | возвращает список подстрок, разделенных по sep до maxsplit раз (с конца) |
s.rstrip([chars]) | возвращает строку без пробельных символов или chars в конце |
s.split((sep=’ ‘, maxsplit=-1)) | возвращает список подстрок, разделенных по sep до maxsplit раз |
s.splitlines(keepends=False) | Разделяет строку по \n . Не удаляет разделители, если keepends=True . |
s.startswith(prefix[, start][, end]) | возвращает True если строка начинается с prefix , иначе False |
s.strip([chars]) | возвращает строку без пробельных символов или chars в начале и конце |
s.swapcase() | меняет регистр всех символов на противоположный |
s.title() | возвращает строку, где все слова начинаются с заглавной буквы, а продолжаются строчными |
s.translate(table) | заменяет все символы строки согласно таблице перевода |
s.upper() | возвращает копию строки в верхнем регистре |
s.zfill(width) | Заполняет строку указанным числом нулей в начале |
Примечания
isdecimal, isdigit, isnumeric
Эти три метода отличаются тем, как обрабатывают некоторые символы Юникода.
c1 = '\u00B2' # ² c1.isdecimal() # False c1.isdigit() # True c2 = '\u00BD' # ½ c2.isdecimal() # False c2.isdigit() # False c2.isnumeric() # True
При работе с цифрами (арабскими и римскими), буквами, знаками математических операций или пунктуации, а также всем прочим, что можно ввести с обычной клавиатуры, не зажав Alt , они ведут себя абсолютно одинаково.
Практический Python для начинающих
Станьте junior Python программистом за 7 месяцев
Изучаем метод replace() в Python: простой способ замены подстрок
Метод replace() в Python используется для замены всех вхождений указанной подстроки в строке на другую подстроку.
Его можно использовать для многих задач, таких как изменение текстовых файлов, удаление или замена определенных символов или строк в строке.
В этой статье мы рассмотрим, как использовать метод replace() , а также приведем несколько примеров его использования.
Синтаксис
Метод replace() заменяет все вхождения одной подстроки на другую в строке и имеет следующий синтаксис:
- str — строка, в которой нужно выполнить замену;
- old — подстрока, которую нужно заменить;
- new — новая подстрока, которой нужно заменить все вхождения old;
- count — необязательный параметр, который указывает, сколько раз нужно выполнить замену. По умолчанию заменятся все вхождения old.
Примеры использования метода replace()
Замена символов в строке
Допустим, у вас есть строка, в которой нужно заменить все вхождения одного символа на другой. В этом примере мы заменяем все запятые в строке на точки с помощью метода replace() :
s = '3,14' new_s = s.replace(',', '.') print(new_s) # '3.14'
Замена слов в строке
Метод replace() также может использоваться для замены слов в строке. Например, в следующем примере мы заменяем все вхождения слова «Python» на «JavaScript» в строке:
s = 'Python is my favorite programming language. I love Python!' new_s = s.replace('Python', 'JavaScript') print(new_s) # 'JavaScript is my favorite programming language. I love JavaScript!'
Ограничение количества замен
Метод replace() позволяет ограничить количество замен с помощью параметра count . Например, в следующем примере мы заменяем только первые два вхождения слова «Python» на «JavaScript»:
s = 'Python is my favorite programming language. I love Python!' new_s = s.replace('Python', 'JavaScript', 2) print(new_s) # 'JavaScript is my favorite programming language. I love Python!'
Замена нескольких символов одновременно
Метод replace() также может использоваться для замены нескольких символов одновременно. Например, в следующем примере мы заменяем все вхождения символов a , b и c на символ x :
s = 'abcabc' new_s = s.replace('a', 'x').replace('b', 'x').replace('c', 'x') print(new_s) # 'xxxxxx'
Замена со знаками препинания
Метод replace() может использоваться для замены знаков препинания на пробелы. Например, в следующем примере мы заменяем знаки препинания на пробелы:
s = "Hello, world! This is a test." new_s = s.replace(",", " ").replace("!", " ") print(new_s) # 'Hello world This is a test '
Замена только в начале или в конце строки
Метод replace() заменяет все вхождения подстроки в строке. Если вы хотите заменить только первое вхождение подстроки в строке или только в начале или в конце строки, вам может потребоваться использовать методы startswith() или endswith() . Например, в следующем примере мы заменяем только первое вхождение слова «Python» на «JavaScript»:
s = 'Python is my favorite programming language. I love Python!' new_s = s.replace('Python', 'JavaScript', 1) print(new_s) # 'JavaScript is my favorite programming language. I love Python!'
Использование регулярных выражений
Метод replace() не поддерживает использование регулярных выражений. Если вам нужно использовать регулярные выражения для выполнения замены в строке, вам следует использовать модуль re . Например, мы можем использовать модуль re для замены всех цифр в строке на символ x :
import re s = "123abc456def789" new_s = re.sub(r"\d", "x", s) print(new_s) # 'xxxabcxxxdefxxx'
Заключение
Метод replace() является мощным инструментом для работы со строками в Python. Он позволяет легко заменять все вхождения одной подстроки на другую в строке и может использоваться во многих ситуациях. Также может использоваться для замены нескольких символов одновременно, а также для ограничения количества замен. Однако, при использовании этого метода следует быть осторожным и учитывать специфику конкретной задачи.