'Eek!'
Тройные кавычки не очень полезны для таких коротких строк. Они обычно используются для того, чтобы создать многострочные строки, наподобие следующего классического стихотворения Эдварда Леара (Edward Lear):
>>> poem =··'''There was a Young Lady of Norway,
… Who casually sat in a doorway;
… When the door squeezed her flat,
… She exclaimed, "What of that?"
… This courageous Young Lady of Norway.'''
>>>
(Это стихотворение было введено в интерактивный интерпретатор, который поприветствовал нас символами >>> в первой строке и выводил символы … до тех пор, пока мы не ввели последние тройные кавычки и не перешли к следующей строке.)
Если бы вы попробовали создать стихотворение с помощью одинарных кавычек, Python начал бы волноваться, когда бы вы перешли к следующей строке:
>>> poem = 'There was a young lady of Norway,
··File "<stdin>", line 1
····poem = 'There was a young lady of Norway,
············································^
SyntaxError: EOL while scanning string literal
>>>
Если внутри тройных кавычек располагается несколько строк, символы конца строки будут сохранены внутри нее. Если перед строкой или после нее находятся пробелы, они также будут сохранены:
>>> poem2 = '''I do not like thee, Doctor Fell.
…·····The reason why, I cannot tell.
…·····But this I know, and know full welclass="underline"
…·····I do not like thee, Doctor Fell.
… '''
>>> print(poem2)
I do not like thee, Doctor Fell.
····The reason why, I cannot tell.
····But this I know, and know full welclass="underline"
····I do not like thee, Doctor Fell.
>>>
Кстати, существует разница между выводом на экран с помощью функции print() и автоматическим выводом на экран с помощью интерактивного интерпретатора:
>>> poem2
'I do not like thee, Doctor Fell.\n····The reason why, I cannot tell.\n····But
this I know, and know full welclass="underline" \n····I do not like thee, Doctor Fell.\n'
Функция print() извлекает кавычки из строк и выводит на экран их содержимое. Она предназначена для удобства пользователя. Эта функция любезно добавляет пробел между каждым выводимым объектом, а также символ новой строки в конце:
>>> print(99, 'bottles', 'would be enough.')
99 bottles would be enough.
Если вам не нужны пробелы или переход на новую строку, вскоре вы узнаете, как избежать их появления.
Интерпретатор выводит строку с одинарными кавычками и управляющими символами вроде \n, что объясняется в подразделе «Создаем управляющие символы с помощью символа \» далее в текущем разделе.
Наконец, вам может понадобиться работать с пустой строкой. В ней нет символов, но она совершенно корректна. Вы можете создать пустую строку с помощью любых упомянутых ранее кавычек:
>>> ''
''
>>> ""
''
>>> ''''''
''
>>> """"""
''
>>>
Зачем может понадобиться пустая строка? Иногда приходится компоновать строку из других строк и для этого нужно начать с чистого листа, то есть с пустой строки.
>>> bottles = 99
>>> base = ''
>>> base += 'current inventory: '
>>> base += str(bottles)
>>> base
'current inventory: 99'
Преобразование типов данных с помощью функции str()
Вы можете преобразовывать другие типы данных Python в строки с помощью функции str():
>>> str(98.6)
'98.6'
>>> str(1.0e4)
'10000.0'
>>> str(True)
'True'
В Python функция str() также используется для внутренних нужд, когда вы вызываете функцию print() для объектов, которые не являются строками, и при выполнении интерполяции строк, с которой вы познакомитесь в главе 7.
Создаем управляющие символы с помощью символа \
Python позволяет вам создавать управляющие последовательности внутри строк, чтобы добиться эффекта, который по-другому было бы трудно выразить. Размещая перед символом обратный слеш (\), вы наделяете этот символ особым значением. Наиболее распространена последовательность \n, которая означает переход на новую строку. С ее помощью вы можете создать многострочные строки из однострочных:
>>> palindrome = 'A man,\nA plan,\nA canaclass="underline" \nPanama.'
>>> print(palindrome)
A man,
A plan,
A canaclass="underline"
Panama.
Вы также увидите последовательность \t (табуляция), которая используется для выравнивания текста: