Манипулирование строками

Escape characters

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

Символ экранированияВыводится как
\'Одинарная кавычка
\"Двойная кавычка
\tТабуляция
\nНовая строка (перенос строки)
\\Обратная косая черта
\bЗабой (Backspace)
\oooВосьмеричное значение
\rВозврат каретки (Carriage Return)
# Escape characters: use backslash to insert special characters
# \n = newline, \' = single quote
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.

Raw strings

Сырая строка (raw string) полностью игнорирует все символы экранирования и выводит любую обратную косую черту, которая появляется в строке.

# Raw string (r prefix): treats backslashes as literal characters
print(r"Hello there!\nHow are you?\nI\'m doing fine.")  # \n printed literally
Hello there!\nHow are you?\nI\'m doing fine.

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

Викторина

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

Что делает сырая строка (с префиксом r) в Python?
A. Преобразует все символы в верхний регистр
B. Обрабатывает обратные косые черты как литеральные символы, игнорируя последовательности экранирования
C. Удаляет все пробелы
D. Меняет строку на обратную

Multiline Strings

print(
"""Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob"""
)
Dear Alice,

Eve's cat has been arrested for catnapping,
cat burglary, and extortion.

Sincerely,
Bob

Indexing and Slicing strings

H   e   l   l   o       w   o   r   l   d    !
0   1   2   3   4   5   6   7   8   9   10   11

Indexing

# String indexing: access characters by position (0-based)
spam = 'Hello world!'

spam[0]  # Returns first character: 'H'
'H'
spam[4]
'o'
spam[-1]
'!'

Slicing

# String slicing: extract substring using [start:end] syntax
spam = 'Hello world!'

spam[0:5]  # Returns characters from index 0 to 4: 'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
Викторина

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

Что делает spam[::-1] со строкой?
A. Возвращает первый символ
B. Возвращает последний символ
C. Меняет строку на обратную
D. Удаляет все символы
fizz = spam[0:5]
fizz
'Hello'

The in and not in operators

'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False

upper(), lower() and title()

Преобразует строку в верхний, нижний регистр и регистр заголовка:

greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'

isupper() and islower() methods

Возвращает True или False после оценки, находится ли строка в верхнем или нижнем регистре:

spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False

The isX string methods

МетодОписание
isalpha()возвращает True, если строка состоит только из букв.
isalnum()возвращает True, если строка состоит только из букв и цифр.
isdecimal()возвращает True, если строка состоит только из цифр.
isspace()возвращает True, если строка состоит только из пробелов, табуляций и символов новой строки.
istitle()возвращает True, если строка состоит только из слов, начинающихся с заглавной буквы, за которой следуют только строчные символы.

startswith() and endswith()

'Hello world!'.startswith('Hello')
True
'Hello world!'.endswith('world!')
True
'abc123'.startswith('abcdef')
False
'abc123'.endswith('12')
False
'Hello world!'.startswith('Hello world!')
True
'Hello world!'.endswith('Hello world!')
True
Викторина

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

Что возвращает startswith()?
A. True, если строка начинается с указанной подстроки, False в противном случае
B. Подстрока, соответствующая началу
C. Индекс, с которого начинается подстрока
D. Новая строка без префикса

join() and split()

join()

Метод join() принимает все элементы итерируемого объекта, такого как список, словарь, кортеж или множество, и объединяет их в строку. Вы также можете указать разделитель.

''.join(['My', 'name', 'is', 'Simon'])
'MynameisSimon'
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'

split()

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

'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
' My  name is  Simon'.split()
['My', 'name', 'is', 'Simon']
' My  name is  Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
Викторина

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

Что возвращает split() при вызове на строке?
A. Строку
B. Список строк
C. Кортеж строк
D. Словарь

Justifying text with rjust(), ljust() and center()

'Hello'.rjust(10)
'     Hello'
'Hello'.rjust(20)
'               Hello'
'Hello World'.rjust(20)
'         Hello World'
'Hello'.ljust(10)
'Hello     '
'Hello'.center(20)
'       Hello       '

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

'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'

Removing whitespace with strip(), rstrip(), and lstrip()

spam = '    Hello World     '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World     '
spam.rstrip()
'    Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'

The Count Method

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

sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# returns count of e after 'one sh' i.e 6 chars since beginning of string
sentence.count('e', 6)
8
sentence.count('e', 7)
7

Replace Method

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

text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
Викторина

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

Что возвращает метод replace()?
A. Изменяет исходную строку
B. Возвращает None
C. Возвращает новую строку с внесенными заменами
D. Возвращает список замененных строк