Строки в Python являются упорядоченными коллекциями символов, которые могут быть представлены в одинарных, двойных или тройных кавычках. Вот некоторые основные операции и методы, которые можно использовать для работы со строками в Python:
Создание строк
Строки могут быть созданы с помощью одинарных (`' '`), двойных (`" "`), или тройных (`''' '''` или `""" """`) кавычек.
my_string = 'Hello, World!'
Доступ к символам
Символы в строке могут быть доступны по индексу, начиная с 0. Также можно использовать отрицательные индексы для доступа к символам с конца строки.
my_string = "Hello, World!"
print(my_string[0]) # Выведет: H
print(my_string[-1]) # Выведет: !
Срезы строк
Срезы позволяют получить подстроку из строки. Синтаксис: `string[start:stop:step]`.
my_string = "Hello, World!"
# Вывод с 7-го символа до конца
print(my_string[7:]) # Выведет: World!
# Вывод с начала до 5-го символа (не включительно)
print(my_string[:5]) # Выведет: Hello
# Вывод всей строки с шагом 2 (каждый второй символ)
print(my_string[::2]) # Выведет: Hlo ol!
# Вывод с 2-го до 8-го символа (не включительно)
print(my_string[2:8]) # Выведет: llo, W
# Вывод с 2-го символа до конца с шагом 3
print(my_string[2::3]) # Выведет: l r!
# Вывод всей строки в обратном порядке
print(my_string[::-1]) # Выведет: !dlroW ,olleH
# Вывод с -6-го символа до -1-го (не включительно)
print(my_string[-6:-1]) # Выведет: World
# Вывод с -6-го символа до конца
print(my_string[-6:]) # Выведет: World!
# Вывод с -1-го до -6-го символа в обратном порядке
print(my_string[-1:-7:-1]) # Выведет: !dlroW
Длина строки
Длина строки может быть получена с помощью встроенной функции `len()`.
print(len(my_string)) # Выведет: 13
Конкатенация строк
Строки могут быть объединены с использованием оператора `+`.
new_string = my_string + ' Welcome!'
print(new_string) # Выведет: Hello, World! Welcome!
Методы строк
Python предоставляет множество методов для работы со строками, таких как `upper()`, `lower()`, `strip()`, `split()`, `join()`, `replace()` и другие.
print(my_string.upper()) # Выведет: HELLO, WORLD!
print(my_string.lower()) # Выведет: hello, world!
print(my_string.strip()) # Удаляет пробельные символы с начала и конца строки
print(my_string.split(',')) # Разбивает строку на список по указанному разделителю
print(' '.join(my_string)) # Разбивает строку по разделителю в ''
# Вывод: H e l l o , W o r l d !
Форматирование строк
Строки могут быть форматированы с использованием метода `format()` или f-строк.
name = 'Alice'
age = 30
print('My name is {} and I am {} years old.'.format(name, age))
# Выведет: My name is Alice and I am 30 years old.
print(f'My name is {name} and I am {age} years old.')
# Выведет: My name is Alice and I am 30 years old.
Проверка содержания подстроки
Можно проверить, содержит ли строка определенную подстроку с помощью операторов `in` и `not in`.
print('Hello' in my_string) # Выведет: True
print('Python' not in my_string) # Выведет: True
Наиболее часто используемые методы строк в Python с примерами
Методы | Что делают |
S.find(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или -1 |
S.rfind(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 |
S.rindex(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError |
S.replace(шаблон, замена[, maxcount]) | Замена шаблона на замену. maxcount ограничивает количество замен |
S.split(символ) | Разбиение строки по разделителю |
S.isdigit() | Состоит ли строка из цифр |
S.isalpha() | Состоит ли строка из букв |
S.isalnum() | Состоит ли строка из цифр или букв |
S.islower() | Состоит ли строка из символов в нижнем регистре |
S.isupper() | Состоит ли строка из символов в верхнем регистре |
S.isspace() | Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы ('\f'), "новая строка" ('\n'), "перевод каретки" ('\r'), "горизонтальная табуляция" ('\t') и "вертикальная табуляция" ('\v')) |
S.istitle() | Начинаются ли слова в строке с заглавной буквы |
S.upper() | Преобразование строки к верхнему регистру |
S.lower() | Преобразование строки к нижнему регистру |
S.startswith(str) | Начинается ли строка S с шаблона str |
S.endswith(str) | Заканчивается ли строка S шаблоном str |
S.join(список) | Сборка строки из списка с разделителем S |
ord(символ) | Символ в его код ASCII |
chr(число) | Код ASCII в символ |
S.capitalize() | Переводит первый символ строки в верхний регистр, а все остальные в нижний |
S.center(width, [fill]) | Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) |
S.count(str, [start],[end]) | Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию) |
S.expandtabs([tabsize]) | Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам |
S.lstrip([chars]) | Удаление пробельных символов в начале строки |
S.rstrip([chars]) | Удаление пробельных символов в конце строки |
S.strip([chars]) | Удаление пробельных символов в начале и в конце строки |
S.partition(шаблон) | Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки |
S.rpartition(sep) | Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку |
S.swapcase() | Переводит символы нижнего регистра в верхний, а верхнего – в нижний |
S.title() | Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний |
S.zfill(width) | Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями |
S.ljust(width, fillchar=" ") | Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar |
S.rjust(width, fillchar=" ") | Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar |
S.format(*args, **kwargs) | форматирование строки |
1. capitalize(): Преобразует первый символ строки в верхний регистр, а остальные - в нижний.
my_string = "hello world"
print(my_string.capitalize()) # Выведет: Hello world
2. casefold(): Преобразует все символы строки в нижний регистр.
my_string = "Hello World"
print(my_string.casefold()) # Выведет: hello world
3. center(width, fillchar): Возвращает строку, выровненную по центру с дополнительными символами по краям.
my_string = "hello"
print(my_string.center(10, '-')) # Выведет: --hello---
4. count(substring, start, end): Возвращает количество вхождений подстроки в строке.
my_string = "hello hello"
print(my_string.count('hello')) # Выведет: 2
5. endswith(suffix, start, end): Проверяет, заканчивается ли строка указанным суффиксом.
my_string = "hello world"
print(my_string.endswith('world')) # Выведет: True
6. find(substring, start, end): Возвращает индекс первого вхождения подстроки в строку. Если подстрока не найдена, возвращает -1.
my_string = "hello world"
print(my_string.find('world')) # Выведет: 6
7. index(substring, start, end): Аналогичен методу `find()`, но вызовет исключение, если подстрока не найдена.
my_string = "hello world"
print(my_string.index('world')) # Выведет: 6
8. isalnum(): Возвращает True, если все символы в строке алфанумерические (то есть буквы или цифры), иначе возвращает False.
my_string = "hello123"
print(my_string.isalnum()) # Выведет: True
9. isalpha(): Возвращает True, если все символы в строке являются буквами, иначе возвращает False.
my_string = "hello"
print(my_string.isalpha()) # Выведет: True
10. isdigit(): Возвращает True, если все символы в строке являются цифрами, иначе возвращает False.
my_string = "123"
print(my_string.isdigit()) # Выведет: True
11. islower(): Возвращает True, если все символы в строке в нижнем регистре, иначе возвращает False.
my_string = "hello"
print(my_string.islower()) # Выведет: True
12. isspace(): Возвращает True, если все символы в строке являются пробельными, иначе возвращает False.
my_string = " "
print(my_string.isspace()) # Выведет: True
13. istitle(): Возвращает True, если строка является заголовочной (каждое слово начинается с заглавной буквы), иначе возвращает False.
my_string = "Hello World"
print(my_string.istitle()) # Выведет: True
14. isupper(): Возвращает True, если все символы в строке в верхнем регистре, иначе возвращает False.
my_string = "HELLO"
print(my_string.isupper()) # Выведет: True
15. join(iterable): Соединяет элементы итерируемого объекта (например, списка) в строку, используя строку в качестве разделителя.
my_list = ['Hello', 'World']
print('-'.join(my_list)) # Выведет: Hello-World
16. lower(): Преобразует все символы строки в нижний регистр.
my_string = "HELLO"
print(my_string.lower()) # Выведет: hello
17. lstrip(chars): Удаляет пробельные символы или указанные символы слева от строки.
my_string = " hello "
print(my_string.lstrip()) # Выведет: hello
18. rstrip(chars): Удаляет пробельные символы или указанные символы справа от строки.
my_string = " hello "
print(my_string.rstrip()) # Выведет: hello
19. strip(chars): Удаляет пробельные символы или указанные символы с обоих концов строки.
my_string = " hello "
print(my_string.strip()) # Выведет: hello
20. partition(separator): Разбивает строку на кортеж из трех элементов: часть строки до разделителя, сам разделитель и часть строки после разделителя.
my_string = "hello world"
print(my_string.partition(' ')) # Выведет: ('hello', ' ', 'world')
21. replace(old, new, count): Заменяет все вхождения подстроки `old` на подстроку `new`.
my_string = "hello world"
print(my_string.replace('world', 'python')) # Выведет: hello python
22. split(separator, maxsplit): Разделяет строку на подстроки по указанному разделителю и возвращает их в виде списка. Максимальное количество разбиений может быть задано параметром `maxsplit`.
my_string = "hello world"
print(my_string.split()) # Выведет: ['hello', 'world']
23. splitlines(keepends): Разделяет строку на подстроки по символам новой строки и возвращает их в виде списка. Если параметр `keepends` установлен в True, символы новой строки останутся в результирующих строках.
my_string = "hello\nworld\n"
print(my_string.splitlines()) # Выведет: ['hello', 'world']
24. startswith(prefix, start, end): Проверяет, начинается ли строка с указанного префикса.
my_string = "hello world"
print(my_string.startswith('hello')) # Выведет: True
25. swapcase(): Переводит символы нижнего регистра в верхний и наоборот.
my_string = "Hello World"
print(my_string.swapcase()) # Выведет: hELLO wORLD
26. title(): Преобразует строку в "заголовочный" формат, делая первую букву каждого слова заглавной.
my_string = "hello world"
print(my_string.title()) # Выведет: Hello World
27. upper(): Преобразует все символы строки в верхний регистр.
my_string = "hello world"
print(my_string.upper()) # Выведет: HELLO WORLD
28. zfill(width): Дополняет строку нулями слева до указанной ширины.
my_string = "42"
print(my_string.zfill(5)) # Выведет: 00042