Строки

Для представления строк в Python используется тип str (аналог std::string в С++ или String в Pascal).


In [2]:
s1 = "Строки можно задавать в двойных кавычках"
s2 = 'А можно в одинарных'
print(s1, type(s1))
print(s2, type(s2))


Строки можно задавать в двойных кавычках <class 'str'>
А можно в одинарных <class 'str'>

Спецсимволы

Для задания в строке особых символов (например переводов строк или табуляций) в Python используются специальный последовательности, вроде \n для перевода строки или \t для символа табуляции:


In [3]:
s = "Эта строка\nсостоит из двух строк"
print(s)


Эта строка
состоит из двух строк

In [6]:
s = "А в этой\tстроке\nиспользуются\tсимволы табуляции"
print(s)


А в этой	строке
используются	символы табуляции

Такой же синтаксис используетя для задания кавычек в строке:


In [7]:
s1 = "Это \"строка\" с кавычками."
s2 = 'И "это" тоже.'
s3 = 'С одинарными Кавычками \'\' всё работает также.'
print(s1, s2, s3)


Это "строка" с кавычками. И "это" тоже. С одинарными Кавычками '' всё работает также.

In [8]:
print("Если надо задать обратный слэш \\, то его надо просто удвоить: '\\\\'")


Если надо задать обратный слэш \, то его надо просто удвоить: '\\'

Операции со строками

Сложение

Строки можно складывать. В этом случае они просто припишутся друг к другу. По-умному это называется конкатенацией.


In [9]:
greeting = "Привет"
exclamation = "!!!"
print(greeting + exclamation)


Привет!!!

Повторение

Можно умножать на целое число, чтобы повторить строку нужное число раз.


In [11]:
print("I will write in Python with style!\n" * 10)
print(3 * "Really\n")


I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!
I will write in Python with style!

Really
Really
Really

Индексация

Получить символ на заданной позиции можно также, как и в C++ или Pascal. Индекасация начинается с 0.


In [13]:
s = "Это моя строка"
print(s[0], s[1], s[2])


Э т о

Но нельзя поменять отдельный символ. Это сделано для того, чтобы более логично и эффективно реализовать некоторые возможности Python.


In [14]:
s = "Вы не можете изменить символы этой строки"
s[0] = "Т"


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-90c2df1ce1de> in <module>()
      1 s = "Вы не можете изменить символы этой строки"
----> 2 s[0] = "Т"

TypeError: 'str' object does not support item assignment

Перевод: ОшибкаТипа: объект 'str' не поддерживает присваивание элементов

Можно указывать отрицательные индексы, тогда нумерация происходит с конца.


In [16]:
s = "Строка"
print(s[-1], "=", s[5])
print(s[-2], "=", s[4])
print(s[-3], "=", s[3])
print(s[-4], "=", s[2])
print(s[-5], "=", s[1])
print(s[-6], "=", s[0])


а = а
к = к
о = о
р = р
т = т
С = С

Длина строки


In [17]:
s = "Для получения длины используется функция len"
print(len(s))


44

Проверка наличия подстроки

Проверить наличие или отсутствие в строке подстроки или символа можно с помощью операций in и not in.


In [18]:
vowels = "аеёиоуыэюя"
c = "ы"
if c in vowels:
    print(c, "- гласная")
else:
    print(c, "- согласная")


ы - гласная

In [20]:
s = "Python - лучший из неторопливых языков :)"
print("Python" in s)
print("C++" in s)


True
False

Кодировка символов

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

Самая простая кодировка для латинских букв, цифр и часто используемых символов — ASCII. Она задаёт коды (числа) для 128 символов и используется в Python для представления этих символов.

Код по символу


In [23]:
# Код любого символа можно получить с помощью функции ord
print(ord("a"))


97

In [24]:
# Можно пользоваться тем, что коды чисел, маленьких латинских букв и больших латинских букв идут подряд.
print("Цифры:", ord("0"), ord("1"), ord("2"), ord("3"), "...", ord("8"), ord("9"))
print("Маленькие буквы:", ord("a"), ord("b"), ord("c"), ord("d"), "...", ord("y"), ord("z"))
print("Большие буквы:", ord("A"), ord("B"), ord("C"), ord("D"), "...", ord("Y"), ord("Z"))


Цифры: 48 49 50 51 ... 56 57
Маленькие буквы: 97 98 99 100 ... 121 122
Большие буквы: 65 66 67 68 ... 89 90

In [25]:
# Например, так можно получить номер буквы в алфавите
c = "g"
print(ord(c) - ord('a'))


6

Символ по коду


In [27]:
# Для получение символа по коду используется функция chr
print(chr(100))


d

ASCII


In [32]:
# Этот код выводит всю таблицу ASCII
for code in range(128):
    print('chr(' + str(code) + ') =', repr(chr(code)))


chr(0) = '\x00'
chr(1) = '\x01'
chr(2) = '\x02'
chr(3) = '\x03'
chr(4) = '\x04'
chr(5) = '\x05'
chr(6) = '\x06'
chr(7) = '\x07'
chr(8) = '\x08'
chr(9) = '\t'
chr(10) = '\n'
chr(11) = '\x0b'
chr(12) = '\x0c'
chr(13) = '\r'
chr(14) = '\x0e'
chr(15) = '\x0f'
chr(16) = '\x10'
chr(17) = '\x11'
chr(18) = '\x12'
chr(19) = '\x13'
chr(20) = '\x14'
chr(21) = '\x15'
chr(22) = '\x16'
chr(23) = '\x17'
chr(24) = '\x18'
chr(25) = '\x19'
chr(26) = '\x1a'
chr(27) = '\x1b'
chr(28) = '\x1c'
chr(29) = '\x1d'
chr(30) = '\x1e'
chr(31) = '\x1f'
chr(32) = ' '
chr(33) = '!'
chr(34) = '"'
chr(35) = '#'
chr(36) = '$'
chr(37) = '%'
chr(38) = '&'
chr(39) = "'"
chr(40) = '('
chr(41) = ')'
chr(42) = '*'
chr(43) = '+'
chr(44) = ','
chr(45) = '-'
chr(46) = '.'
chr(47) = '/'
chr(48) = '0'
chr(49) = '1'
chr(50) = '2'
chr(51) = '3'
chr(52) = '4'
chr(53) = '5'
chr(54) = '6'
chr(55) = '7'
chr(56) = '8'
chr(57) = '9'
chr(58) = ':'
chr(59) = ';'
chr(60) = '<'
chr(61) = '='
chr(62) = '>'
chr(63) = '?'
chr(64) = '@'
chr(65) = 'A'
chr(66) = 'B'
chr(67) = 'C'
chr(68) = 'D'
chr(69) = 'E'
chr(70) = 'F'
chr(71) = 'G'
chr(72) = 'H'
chr(73) = 'I'
chr(74) = 'J'
chr(75) = 'K'
chr(76) = 'L'
chr(77) = 'M'
chr(78) = 'N'
chr(79) = 'O'
chr(80) = 'P'
chr(81) = 'Q'
chr(82) = 'R'
chr(83) = 'S'
chr(84) = 'T'
chr(85) = 'U'
chr(86) = 'V'
chr(87) = 'W'
chr(88) = 'X'
chr(89) = 'Y'
chr(90) = 'Z'
chr(91) = '['
chr(92) = '\\'
chr(93) = ']'
chr(94) = '^'
chr(95) = '_'
chr(96) = '`'
chr(97) = 'a'
chr(98) = 'b'
chr(99) = 'c'
chr(100) = 'd'
chr(101) = 'e'
chr(102) = 'f'
chr(103) = 'g'
chr(104) = 'h'
chr(105) = 'i'
chr(106) = 'j'
chr(107) = 'k'
chr(108) = 'l'
chr(109) = 'm'
chr(110) = 'n'
chr(111) = 'o'
chr(112) = 'p'
chr(113) = 'q'
chr(114) = 'r'
chr(115) = 's'
chr(116) = 't'
chr(117) = 'u'
chr(118) = 'v'
chr(119) = 'w'
chr(120) = 'x'
chr(121) = 'y'
chr(122) = 'z'
chr(123) = '{'
chr(124) = '|'
chr(125) = '}'
chr(126) = '~'
chr(127) = '\x7f'