Вывод с помощью print
Мы в основном используем Python в интерактивном режиме. Это позволяет нам быстро тестировать вводимые данные, потому что после каждого шага интерпретатор выводит результат. В программах, которые записываются в файл выводом управляет функция print(). Синтаксис запуска и выполнения функции выглядит следующим образом:
print(<параметры>)
Разберем по кусочкам эту строку. print – это имя функции, для того чтобы вызывать функцию используются скобки после ее имени и внутри скобок указываются параметры функции. С работой функций мы будем разбираться в следующих уроках. А сейчас достаточно запомнить просто формат этой записи.
Простейшая программа, которая выводит сообщение на экран выглядит так:
print("Привет, мир!")
После запуска эта программа напечатает Привет и завершит работу. Если немного изменить код, то можно вывести значение переменной:
hello = "Привет"
print(hello)
Вывод в Python 2
В старых версиях print был оператором и вызов вывода на экран выглядел так print "Hello". Вам много раз будет встречаться устаревший код в примерах или в статьях в интернете. Если вы видите вывод print без скобок, то такая программа устарела минимум лет на 10. В Википедии часто встречается устаревший код.
Если необходимо вывести многострочный текст, то вам понадобится специальный формат записи многострочных текстовых переменных:
bits_of_zen = """Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное."""
print(bits_of_zen)
Дзен Питона
Это не случайный текст, а первые строки перевода Дзен Питона взятый с русскоязычной Википедии. Англоязычный Zen of Python доступен в виде пасхального яйца если выполнить import this, можно в интерактивном режиме. Обязательно прочтите этот текст, поскольку именно эта философия сделала Python тем, чем он является.
Экранированные символы
Если вы попробуете выполнить код с многострочной переменной в интерактивном режиме и потом попробуете вывести bits_of_zen, то увидите дополнительные символы:
>>> bits_of_zen
'Красивое лучше, чем уродливое.\nЯвное лучше, чем неявное.\nПростое лучше, чем сложное.\nСложное лучше, чем запутанное.'
Переменная bits_of_zen выглядит не так симпатично, как она выводится с помощью print. Везде, где строка обрывалась и начиналась сначала появились символы \n. Чтобы прервать вывод текста в строке и начать вывод с новой строки необходим специальный символ. Комбинация \n это и есть этот символ, правда он закодирован с помощью обратной черты. Формат записи через символ черты и потом какой-то комбинации называется экранирование. Символ \n — это экранированный символ новой строки, который отображается в читаемом (для программистов) виде.
Разных символов для управления выводом текстов не так много. Вот основные:
| Последовательность | Описание |
|---|---|
\n |
Перевод строки |
\' |
Экранированная одинарная кавычка |
\" |
Экранированная двойная кавычка |
\r |
Возврат каретки |
\t |
Горизонтальная табуляция |
Редко используемые:
| Последовательность | Описание |
|---|---|
\a |
Звонок |
\b |
Забой, аналог нажатия кнопки Backspace (Delete на Apple) |
\f |
Перевод страницы |
\v |
Вертикальная табуляция |
\N{id} |
Идентификатор ID базы данных Юникода |
\uhhhh |
16-битовый символ Юникода в 16-ричном представлении |
\Uhhhh… |
32-битовый символ Юникода в 32-ричном представлении |
\xhh |
16-ричное значение символа |
\ooo |
8-ричное значение символа |
\0 |
Символ Null (не является признаком конца строки) |
Исторически ввод символов появился еще до изобретения компьютеров. Все началось с механических пишущих машинок именно на них появились символы пробел, табуляции и вертикальной табуляции. Машинисткам (в те времена это было преимущественно женская профессия) которые вводили текст часто необходимо было сделать новый абзац или вертикальный отступ в тексте. Поэтому в пищущих машинках была такая возможность в ввиде клавиш или рычажков.
Постепенно в мир начали приходить компьютеры и пишущие машинки развивались. В какой-то момент их даже начали подсоединять к компьютерам чтобы они могли автоматически печатать текст. Теперь сигнал приходил в электронном виде и уже усилие мотора заставляло передвигать каретку и бросать головку печати на бумагу через красящую ленту. Из тех времен наборе символов сохранилсь команды на возврат на шаг назад (\b, от английского back), эта команда смещала позицию листа на шаг назад. Перевод строки делал прокрутку листа еще на одну строку ниже (\n, от new line), а потом еще механизм должен был переместить каретку к началу строки (\r, от return). А потом еще эффектно звякнуть звонком (\a, от alert).
Отголоски этого механического прошлого все еще живы в компьютерах и сейчас. В разных операционных системах немного по разному устроен перевод строки. В Windows требовалось следить чтобы перевод строки состоял из последовательности \r\n, тогда как на остальных операционных системах достаточно \n. Начиная с версии Python 3.0 используется универсальные символы перевода строки, достаточно использовать только \n. Но возможно при работе с бинарными данными или старым кодом вы сталкнетесь с этими проблемами.
Экранированные символы можно использовать чтобы добавнить внутри строки кавычку:
>>> print("Кавычка \" в тексте\nНовая строка\n\tСтрока с отступом")
Кавычка " в тексте
Новая строка
Строка с отступом
