Манипулирование строками
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?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] со строкой?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()?True, если строка начинается с указанной подстроки, False в противном случае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() при вызове на строке?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()?None