Python — операции со строками

python - операции со строками
Привет всем! (гм, похоже, фраза становится слишком заезженной, а значит пора что-то менять). Сегодняшняя запись, как было обещано ранее будет посвящена изучению явления операции со строками в Python.

Важно: примеры программ, в которых пользователь имеет возможность ввести данные не работают в режиме вставки на сайте. Потому прошу запускать примеры именно на сайте Repl.it

Итак, строки можно например складывать:

Как видно из кода — пользователь программы имеет возможность ввести значение строки 1 и строки 2, после чего эти строки будут сложены и распечатаны.

А еще строки можно умножать. На практике это выглядит следующим образом:

Как видно — имеется некий текст, и число. Умножаем текст на число, и получаем не ошибку, а текст, распечатанный подряд указанное число раз. Важно знать, что строки нельзя умножать на числа с плавающей запятой.

Можно узнать длину строки. Например, представленный код:

не только запрашивает текст у пользователя, но и выводит количество символов в строке 🙂 Кстати, для определения длины строки служит функция len().

Кроме этого можно получить доступ к символу, расположенному на определенной позиции в строке. Для этого служит конструкция в виде: строка[номер требуемого символа]. Пример этого кода представлен ниже (важно не забывать: подсчет позиций идет с нуля!):

Представленный код:
1. Просит пользователя ввести значение строки: text = str(input(‘Введите текст: ‘))
2. Выводит количество символов в строке: print (‘Количество символов в введенном тексте: ‘,(len(text)), ‘символов’)
3. Спрашивает, символ с каким номером нужно вывести: s = int(input(‘Какой символ нужно распечатать?: ‘))
4. Выводит этот символ: print (text[s])

Как следствие — если мы можем получить доступ к символу на определенной позиции, то ничего не мешает получить доступ к диапазону символов. Для этого используется конструкция в виде: строка[номер начального символа:номер конечного символа]. Пример кода, который реализует это — ниже:

В более подробном рассмотрении код ничем не отличается от кода, который выводит на экран символ на определенной позиции за исключением запроса последнего символа, и формирования диапазона выводимых символов на экран в строке:
print (text[s:f]) — где text — переменная с текстом, s — переменная начального символа, f — переменного конечного символа.

Кстати, при обработке диапазона символов иногда полезным бывает использование шага, с которым обрабатывается диапазон. Например, следующий код выведет на экран каждый 2 символ в диапазоне от первого до 26 (в примере использована фраза «А роза упала на лапу Азора»):

И для развлечения код:

в котором вы можете:
text = str(input(‘Введите свой текст:’)): задать свой текст
print(‘Количество символов в вашем тексте:’,len(text)): получить количество символов в вашем тексте
s = int(input(‘Какой символ будет начальным? :’)): указать начальный символ в диапазоне
f = int(input(‘Какой символ будет конечным? :’)): указать конечный символ в диапазоне
t = int(input(‘Какой шаг используем? :’)): указать желаемый шаг
print (text[s:f:t]): получить на экране символы из вашего текста с указанным шагом

Важно: строка в Python — явление не изменяемое. А значит, при попытке использования функций или методов работы со строками вы не изменяете начальную строку, а только создаете новую. А значит — вы должны присвоить ей переменную.

Из наиболее часто используемых функций работы со строками можно указать:

S.split(символ), который разбивает строку по указанному разделителю. Пример выполняемого кода ниже:

Как видно из кода — у нас имеется некая строка, привязанная к переменной text. Для примера мы выводим эту переменную (строку) на экран, а второй раз выводим с использованием функции split(). В качестве разделителя я решил использовать букву «а», и … пример работы функции — вы видите на экране.

S.upper() — преобразование строки к верхнему регистру. Иногда возникает необходимость, например, исправить все введенное пользователем и преобразовать к верхнему регистру. Именно на этот случай и используется функция upper(). Пример работы кода — ниже:


S.lower() — преобразование строки в нижнему регистру. Полностью сходна с функцией upper(), но приводит текст к верхнему регистру:


Как видно из кода — у нас имеется переменная text, в которой расположен текст в верхнем регистре. Использование функции lower() приводит текст к нижнему регистру.

S.swapcase() — преобразование верхнего регистра в нижний, и наоборот:


S.center(width, ‘fill’) — позволяет получить строку, размещенную по центру пространства указанной ширины за счет добавления в начало и конец строки пробелов (в случае, если в поле ‘fill’ ничего не указано, или получить в качестве добавленных для отцентрирования текста символы, указанные вместо ‘fill’). На практике это выглядит следующим образом:


— код, где в качестве заполнения используется пробел. Или код, где в качестве заполнения используется знак %:


Интересно, что для выравнивания текста по левому или правому краю поля указанной ширины используются соответственно ljust и rjust (кстати, я когда готовил этот материал — подсознательно искал нечто вроде left — right и justify, как в HTML 🙂 ).