1. Строки в Python

☰ Теория

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

Что покажет приведенный ниже фрагмент кода?

s = 'abcdefg'
print(s[0]*3 + s[-1]*3 + s[3]*2 + s[3]*2)

Ваш ответ Для проверки решения задачи необходимо зарегистрироваться или авторизоваться!

Выберите правильный ответ, либо введите его в поле ввода

Комментарий учителя