В Python есть несколько способов задания строк. С первыми двумя способами мы уже немного познакомились на предыдущих занятиях:
str1 = 'Hello1'
str2 = "Hello2"
А другие два позволяют задавать многострочные данные:
str3 = '''Многострочные
строки 1''';
str4 = """Многострочные
строки2""";
print(str1)
print(str2)
print(str3)
print(str4)
То есть,
синтаксис из трех кавычек задает множественные строки. Причем, смотрите, если
мы непосредственно в консоли напишем:
то при выводе
после hello увидим символ \n, который и
означает перевод строки. Функция print обрабатывая этот
символ делает перевод строки:
Если в кавычках
ничего не записано:
то это будет
пустая строка, не содержащая никаких символов.
При работе с
переменными в Python всегда следует
помнить, что это лишь ссылки на соответствующие объекты. Из этого следует, что
если у нас определена некая строка:
и мы другой
переменной присвоим первую:
то получим две
ссылки на один и тот же объект (одну строку). То есть, копирование строки здесь
не происходит!
Как создавать
копии строк вы узнаете дальше из этого занятия.
Операторы и функции для строк
Первый оператор +
– это соединение двух строк (или как еще говорят, конкатенация строк). Он используется
так:
str1 = 'Hello'
str2 = "world!"
msg = str1+str2
print(msg)
Здесь сначала
будут идти символы первой строки, а затем – второй. В результате у нас
формируется новый объект, содержащий эти символы. Но у нас оба слова слились в
одно. Как можно было бы добавить между ними пробел? Это можно сделать так:
то есть, мы
можем последовательно соединять множество строк между собой. И здесь важно
знать, что соединять между собой можно только строки. Например, вот такая
операция приведет к ошибке:
dig = 5
msg = "число = "+dig
print(msg)
так как dig здесь число, а
не строка. Поправить программу можно преобразовав число в строку с помощью
функции
<p align=center>str(<аргумент>)
msg = "число = "+str(dig)
Теперь все
сработает. Причем, с помощью str можно преобразовывать
самые разные типы данных в строки – это универсальный инструмент.
Далее, в Python довольно просто
выполняется дублирование строки. Предположим у нас есть вот такая строка:
и мы хотим ее
размножить n раз. Это можно
сделать так:
Разумеется,
число копий должно определяться исключительно целыми числами, т.е. делать вот
такую операцию
нельзя,
произойдет ошибка.
Далее, для
определения длины строки, то есть, числа символов в строке (включая управляющие
символы), используется функция
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. На следующем занятии мы индексы и срезы строк.