Строки в Python. Основы
В программировании очень часто возникает необходимость работать со строками. Строка - это последовательность символов, заключенных в кавычки. В Python строки являются неизменяемыми объектами, то есть после создания строки ее нельзя изменить. Однако можно выполнять различные операции с ними, такие как конкатенация, получение подстроки, определение длины и другие.
Создание пустой строки
Для создания пустой строки можно использовать оператор присваивания:
s = ''
или
s = ""
Ввод строки с клавиатуры
Для получения ввода текстовых данных с клавиатуры в переменную типа "строка" в Python, мы можем использовать функцию input()
. Эта функция позволяет пользователю ввести данные с клавиатуры, а затем сохраняет введенное значение в переменной.
s = input() # сохранили, введенный с клавиатуры текст, в переменную s
Длина строки
Чтобы узнать количество символов в строке, используется функция
len():
s = 'Привет, мир!'
length = len(s)
print("Длина строки:", length)
Конкатенация строк
Операция сложения "
+
" позволяет объединять две строки в одну, это называется
конкатенацией:
s1 = 'Привет'
s2 = ' мир!'
result = s1 + s2
print(result)
Умножение строки на число
Операцией умножения "*
" можно умножать строку на число, создавая новую строку, состоящую из повторяющихся экземпляров исходной строки:
s = 'abc'
result = s * 3
print(result) # Выводит 'abcabcabc'
Индексация строк
У каждого символа в строке есть свой индекс. Индекс первого символа всегда равен 0. Чтобы получить доступ к определенному символу в строке, используется квадратные скобки []:
s = 'Python'
print(s[0]) # Выводит "P"
print(s[2]) # Выводит "t"
В Python можно использовать
отрицательные индексы
для доступа к символам с конца строки. Индекс
-1
соответствует последнему символу,
-2
- предпоследнему и так далее:
s = 'Python'
print(s[-1]) # Выводит "n"
print(s[-2]) # Выводит "o"
Если обратиться к несуществующему индексу строки (например,
s[6]
для строки, указанной в примере выше, то получим ошибку
IndexError: string index out of range
Будьте внимательны: если длина строки s
составляет len(s)
символов, то при прямой индексации с нуля слева направо, последний элемент будет иметь индекс len(s) - 1
. А при обратной индексации справа налево, первый элемент будет иметь индекс -len(s)
.
Перебор символов в строке (итерация по строке)
Для обработки каждого символа в строке можно использовать цикл
for
:
Перебрать все символы в строке можно двумя способами.
Первый способ - это перебор по элементам
s = 'Hello'
for c in s:
print(c)
Внутри цикла переменная c
последовательно принимает значение каждого символа из строки s
, начиная с первого и заканчивая последним.
Таким образом, при выполнении цикла выводится каждый символ строки s
на отдельной строке. Результатом работы этого кода будет следующий вывод:
H
e
l
l
o
Второй способ - это перебор по индексам
s = 'Hello'
for i in range(len(s)):
print(s[i])
В этом коде мы используем цикл for
и функцию range()
для создания последовательности индексов от 0 до len(s) - 1
, где len(s)
- это длина строки s
. Затем мы используем каждый индекс i
для доступа к символу строки s
с помощью выражения s[i]
.
Этот код выведет тоже самое, что и код выше. Перебор по индексам полезен, когда нам нужно не только получить значение элемента, но и иметь доступ к его индексу.
Проверка принадлежности
Проверка принадлежности подстроки к строке — это проверка наличия определенной последовательности символов (подстроки) в строке. В Python для этого можно использовать оператор in
. Этот оператор проверяет, содержится ли подстрока в строке, и возвращает булево значение True
, если подстрока найдена, и False
в противном случае.
Пример использования оператора in
для проверки принадлежности подстроки:
s = "Hello, World!"
substring = "Hello"
if substring in s:
print("Подстрока найдена")
else:
print("Подстрока не найдена")
В этом примере мы проверяем, содержится ли подстрока "Hello"
в строке s
. Если подстрока найдена, то выводится сообщение "Подстрока найдена". В противном случае, если подстрока не найдена, выводится сообщение "Подстрока не найдена".
Если мы изменим значение переменной substring
на что-то другое, например "Python"
, код выведет сообщение "Подстрока не найдена".
Условный оператор if
позволяет выполнять определенные действия в зависимости от результата проверки. В данном случае, если условие substring in s
истинно (т.е. подстрока найдена), то выполняется блок кода внутри if
, иначе выполняется блок кода внутри else
.
Полезные функции работы со строками
Поиск в строке
Чтобы в Python выполнить поиск в строке, используют метод find()
.
Он имеет три формы и возвращает индекс 1-го вхождения подстроки в строку:
1) find(str)
- поиск подстроки str
производится с начала строки и до её конца;
2) find(str, start)
- с помощью параметра start
задаётся начальный индекс, и именно с него и выполняется поиск;
3) find(str, start, end) -
посредством параметра end
задаётся конечный индекс, поиск выполняется до него.
Когда подстрока не найдена, метод возвращает -1
:
welcome = "Hello world! Goodbye world!"
index = welcome.find("wor")
print(index) # 6
# ищем с 10-го по 15-й индекс
index = welcome.find("wor", 10, 15)
print(index) # -1
Замена подстрок в строке
Чтобы в Python заменить в строке одну подстроку на другую, применяют метод replace()
:
replace(old, new)
- подстрока old
заменяется на new
;
replace(old, new, num)
- параметр num
показывает, сколько вхождений подстроки old
требуется заменить на new
.