Основы работы со строками

В Python есть несколько способов задания строк. С первыми двумя способами мы уже немного познакомились на предыдущих занятиях:

str1 = 'Hello1'
str2 = "Hello2"

А другие два позволяют задавать многострочные данные:

str3 = '''Многострочные
строки 1''';
 
str4 = """Многострочные
строки2""";
print(str1)
print(str2)
print(str3)
print(str4)

То есть, синтаксис из трех кавычек задает множественные строки. Причем, смотрите, если мы непосредственно в консоли напишем:

'''hello
world'''

то при выводе после hello увидим символ \n, который и означает перевод строки. Функция print обрабатывая этот символ делает перевод строки:

print('hello\nworld')

Если в кавычках ничего не записано:

str0 = ""

то это будет пустая строка, не содержащая никаких символов.

При работе с переменными в Python всегда следует помнить, что это лишь ссылки на соответствующие объекты. Из этого следует, что если у нас определена некая строка:

str1 = "сообщение"

и мы другой переменной присвоим первую:

str2 = str1

то получим две ссылки на один и тот же объект (одну строку). То есть, копирование строки здесь не происходит!

Как создавать копии строк вы узнаете дальше из этого занятия.

Операторы и функции для строк

Первый оператор + – это соединение двух строк (или как еще говорят, конкатенация строк). Он используется так:

str1 = 'Hello'
str2 = "world!"
msg = str1+str2
print(msg)

Здесь сначала будут идти символы первой строки, а затем – второй. В результате у нас формируется новый объект, содержащий эти символы. Но у нас оба слова слились в одно. Как можно было бы добавить между ними пробел? Это можно сделать так:

msg = str1+" "+str2

то есть, мы можем последовательно соединять множество строк между собой. И здесь важно знать, что соединять между собой можно только строки. Например, вот такая операция приведет к ошибке:

dig = 5
msg = "число = "+dig
print(msg)

так как dig здесь число, а не строка. Поправить программу можно преобразовав число в строку с помощью функции

<p align=center>str(<аргумент>)
msg = "число = "+str(dig)

Теперь все сработает. Причем, с помощью str можно преобразовывать самые разные типы данных в строки – это универсальный инструмент.

Далее, в Python довольно просто выполняется дублирование строки. Предположим у нас есть вот такая строка:

one = 'ай '

и мы хотим ее размножить n раз. Это можно сделать так:

msg = one*10
print(msg)

Разумеется, число копий должно определяться исключительно целыми числами, т.е. делать вот такую операцию

msg = one*3.5

нельзя, произойдет ошибка.

Далее, для определения длины строки, то есть, числа символов в строке (включая управляющие символы), используется функция

len(<строка>)

Например:

N = len(msg)
print(msg, N)

Затем, для проверки наличия в строке той или иной подстроки, используется оператор in:

<подстрока> in <строка>

Он возвращает True, если подстрока присутствует и False, если отсутствует. Например:

s = "abcdefg0123"
"abc" in s
'0' in s
'43' in s

Для сравнения строк между собой можно использовать оператор сравнения

<строка 1> == <строка 2>

Данный оператор возвращает True, если строки равны и False, если не равны. Пример:

"abc" == 'abc'
"ABC" == 'abc'

Обратите внимание, строка, записанная заглавными буквами – это в Python уже другая строка и оператор сравнения для них возвращает False.

Для сравнения неравенства строк используется оператор не равно:

<строка 1> != <строка 2>

Он возвращает True, если строки не равны и False в противном случае.

Разумеется, эти операции сравнения обычно используются в условном операторе if или операторах циклов while и for, о которых мы уже с вами говорили. Например, можно записать такую программу:

psw = "pass"
in_psw = ""
while psw != in_psw:
   in_psw = input("Введите пароль: ")
print("Вход в систему разрешен")

Здесь пользователь будет вводить пароль, пока не введет заданный, то есть, строку pass.

Также строки можно сравнивать на больше и меньше:

<строка 1> < <строка 2>
<строка 1> > <строка 2>

Здесь используется лексикографический порядок при определении: какая строка больше, а какая меньше. Мы об этом подробно говорили, когда рассматривали условный оператор if.

Следующая функция

ord(<символ>)

возвращает код указанного символа в строке, например:

ord("a")
ord('A')
ord('0')

Это основные операторы и функции работы со строками в Python. На следующем занятии мы индексы и срезы строк.

Видео по теме