4.3. Строки (string).

Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

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

Строки в 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

 

категории

ТЕОРИЯ

  • Введение в Python
  • Основы программирования на Python
  • Управляющие конструкции
  • Структуры данных
  • Функции и модули
  • Обработка исключений
  • Работа с файлами и потоками
  • файловая система
  • Объектно-ориентированное программирование (ООП)
  • Регулярные выражения
  • Дополнительные темы

Мы в соцсетях