Строки

Основы программирования

Современные языки программирования позволяют не только выполнять вычисления, но и обрабатывать разнообразные тексты. Для этого существует специальный тип данных — строка.

Строка — это упорядоченная последовательность символов. В языке Python 3 строки могут содержать любые символы Unicode. Записывая в программе строковый литерал, мы должны заключить его в кавычки (в Python допустимо использовать как одинарные, так и двойные). Некоторые символы вводятся в виде особых обозначений — экранированных последовательностей: \n — новая срока, \t — горизонтальная табуляция, \\ — обратная наклонная черта, \" — кавычки и некоторые другие.

При вводе строковых данных с клавиатуры, в отличие от чисел, преобразовывать тип не требуется:

name = input('Введите ваше имя: ')

Что же можно сделать со строками? Во-первых, строки можно «склеивать»:

st1 = 'по'
st2 = 'ход'
st3 = st1 + st2 # значением переменной st3 станет строка 'поход'

Во-вторых, их можно дублировать:

st1 = 'мяу'
st2 = st1 + st1 + st1 # склеив три строки st1 получаем 'мяумяумяу'
st3 = st1 * 3 # повторяем строку st1 три раза — результат тот же

Если нам нужен какой-то один символ, для его извлечения мы указываем после имени переменной индекс (порядковый номер) этого символа. Не забывайте, что нумерация в Python всегда начинается с нуля. Можно отсчитывать символы и не от начала, а от конца слова. В этом случае индексы будут отрицательными.

st = 'компьютер'
print(st[0], st[2], st[-1], st[-3]) # на экране будет 'к м р т'

А что если мы хотим извлечь не один символ, а целый фрагмент строки? На этот случай в Python есть операция извлечения среза:

имя_переменной[начало:конец]
имя_переменной[начало:конец:шаг]

Как и для функции range, параметр «конец» показывает индекс, перед которым закончится срез.

Если не указать значение начала среза, будут взяты символы от самого начала исходной строки, если не указать значение конца — до конца исходной строки. Например:

st = 'поваран'
print(st[2:5]) # на экране — 'вар'
print(st[:5]) # на экране — 'повар'
print(st[2:]) # на экране — 'варан'
print(st[::3]) # на экране — 'пан'

Для обработки текста в Python имеется большое количество функций и методов. Полный их список можно посмотреть в справочнике, мы рассмотрим только несколько.

Некоторые функции и методы для работы со строками

Функция/методНазначениеПример записи
len(строка)длина строки (количество символов)a = len(st)
ord(символ)Unicode код символаn = ord('я')
chr(целое_число)символ по его кодуc = chr(12100)
строка.find(подстрока)индекс начала первого вхождения подстроки в строку (или -1)i = st.find('вар')
строка.rfind(подстрока)индекс начала последнего вхождения подстроки в строку (или -1)i = st.rfind('вар')
строка.replace(ст1,ст2)замена всех вхождений подстроки ст1 на ст2st1 = st.replace('a','o')
строка.count(подстрока)количество вхождений подстроки в строкуn = st.count('a')

Примечание:
методы find, rfind, count могут быть вызваны с дополнительными параметрами, ограничивающими часть строки, в которой идет поиск, например:

n = st1.find('мышь', 12, 28)

Основы программирования

Задания

1. Определите, какое значение получит строка st2 при выполнении фрагмента программы:

st1 = 'мур'
st2 = (st1 + '-') * 2 + st1

2. Определите, что будет выведено на экран при выполнении следующего фрагмента программы:

st1 = 'поборода'
print(st1[:5], st1[5:], st1[4:7])
print(st1[::3])

3. Какие слова будут выведены на экран при выполнении следующего фрагмента программы:

st = 'карп'
print(st)
st = st[:3] + 'а'
print(st)
st = st[0] + 'о' + st[2:]
print(s)
st = st[:2] + 'з' + st[-1]
print(st)

4. Определите, что будет выведено на экран при выполнении следующего фрагмента программы:

st = 'колонна'
st = st.replace('о','а')
print(st[:5])

5. Какие строки будут выведены на экран при выполнении следующего фрагмента программы:

st = 'колонна'
for i in range(len(st)) :
print(st[i:])

6. Составьте фрагмент программы, выводящий на экран...

  • ...первое слово строки st1, если строка состоит из нескольких слов, разделенных пробелами.
  • ...из строки st2 второе предложение (при условии, что в строке есть не меньше 2 предложений и каждое из них заканчивается точкой)

Основы программирования