Главная » Просмотр файлов » М. Лутц - Изучаем Python (4-е издание)- 2011

М. Лутц - Изучаем Python (4-е издание)- 2011 (1126907), страница 91

Файл №1126907 М. Лутц - Изучаем Python (4-е издание)- 2011 (М. Лутц - Изучаем Python (4-е издание)- 2011) 91 страницаМ. Лутц - Изучаем Python (4-е издание)- 2011 (1126907) страница 912019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 91)

Так как в версии 3.0print – это обычная функция, для обращения к ней используется не какая-тоспециальная форма, а стандартный синтаксис вызова функций. Вследствиеэтого специальные режимы работы определяются с помощью именованных аргументов. Такая форма не только более универсальна, но и обеспечивает лучшую поддержку будущих расширений.Для сравнения, инструкция print в версии Python������������������������������������������������������������ 2.6 имеет специализированный синтаксис поддержки таких особенностей, как подавление вывода символа конца строки и перенаправление вывода в файл. Кроме того, инструкцияprint в версии 2.6 вообще не позволяет определить строки-разделители – в версии 2.6 вам намного чаще придется конструировать строки заранее, чем в версии 3.0.Формат вызоваСинтаксис вызова функции print в версии 3.0 имеет следующий вид:print([object, ...][, sep=’ ‘][, end=’\n’][, file=sys.stdout])Здесь элементы в квадратных скобках являются необязательными и могутбыть опущены, а значения, следующие за знаком =, определяют значения поумолчанию.

Проще говоря, эта встроенная функция выводит в файл streamодин или более объектов в текстовом представлении, разделенных строкой sep,и завершает вывод строкой end.Параметры sep, end и file, если они необходимы, должны передаваться нев виде позиционных, а в виде именованных аргументов, то есть с использованием специального синтаксиса «имя=значение». Именованные аргументыпо­дробно рассматриваются в главе 18, но они достаточно просты в использовании. Именованные аргументы могут указываться в любом порядке в вызовефункции, но после объектов, предназначенных для вывода, и определяют параметры вывода:•• sep – строка, которая должна вставляться между объектами при выводе.По умолчанию состоит из одного пробела.

Чтобы подавить вывод строкиразделителя, в этом аргументе следует передать пустую строку.364Глава 11. Присваивание, выражения и print•• end – строка, добавляемая в конец выводимого текста. По умолчанию содержит символ конца строки \n. Если в этом аргументе передать пустую строку, следующий вызов функции print начнет вывод текста с позиции, где закончился вывод текущей строки.•• file – объект файла, стандартный поток или другой объект, похожий нафайл, куда будет выводиться текст. По умолчанию используется объектsys.stdout стандартного потока вывода. В этом аргументе можно передатьлюбой объект, поддерживающий метод файлов write(string); если передается настоящий объект файла, он должен уже быть открыт для записи.Текстовое представление любого объекта, который передается для вывода,функция print получает с помощью встроенной функции str. Как мы уже знаем, эта функция возвращает «удобочитаемое» строковое представление любого объекта.1 При вызове без аргументов функция print просто выведет символконца строки в поток стандартного вывода, что выглядит, как вывод пустойстроки.Функция print в действииПользоваться функцией print в версии 3.0 намного проще, чем можно былобы предположить, после знакомства с некоторыми ее особенностями.

Для����ил���люстрации выполним несколько коротких примеров. Ниже демонстрируетсяпорядок вывода объектов различных типов в поток стандартного вывода, используемый по умолчанию, со строкой-разделителем по умолчанию и с добавлением символа конца строки (эти значения параметров вывода были выбраны значениями по умолчанию, потому что они используются в подавляющембольшинстве случаев):C:\misc> c:\python30\python>>>>>> print()# Выведет пустую строку>>> x = ‘spam’>>> y = 99>>> z = [‘eggs’]>>>>>> print(x, y, z)# Выведет три объектаspam 99 [‘eggs’]В данном примере нет никакой необходимости преобразовывать объектыв строки, как этого требуют методы записи в файлы.

По умолчанию функцияprint выводит символ пробела между объектами. Чтобы подавить вывод пробела, достаточно просто передать пустую строку в именованном аргументе sepили указать иную строку-разделитель:1С технической точки зрения, при выводе объектов внутри используется не самафункция str, а некоторая эквивалентная реализация, хотя конечный результат получается тем же самым.

Имя str не только представляет функцию преобразованияв строку, но также является именем строкового типа данных и может использоваться для декодирования строк Юникода из строк байтов, принимая дополнительныйаргумент с названием кодировки, о чем подробно рассказывается в главе 36. Эта последняя роль является дополнительной особенностью, которую здесь можно спокойно игнорировать.365Операция print>>> print(x, y, z, sep=’’)spam99[‘eggs’]>>>>>> print(x, y, z, sep=’, ‘)spam, 99, [‘eggs’]# Строка-разделитель выводиться не будет# Нестандартная строка-разделительКроме того, в конце выводимой строки функция print добавляет символ концастроки.

Вывод�����������������������������������������������������������этого���������������������������������������������������������������������������������������������������������������символа�������������������������������������������������������������������������������������������������можно�����������������������������������������������������������������������������������подавить��������������������������������������������������������������������, передав�������������������������������������������������пустую����������������������������������строку��������������������в����������� ����именованном аргументе end. Точно так же в этом аргументе можно передать инойразделитель строк (включая символ \n, чтобы вручную обеспечить переводстроки):>>> print(x, y, z, end=’’)# Подавление вывода символа конца строкиspam 99 [‘eggs’]>>>>>>>>> print(x, y, z, end=’’); print(x, y, z) # Вывод двух строк в одной строкеspam 99 [‘eggs’]spam 99 [‘eggs’]>>> print(x, y, z, end=’...\n’) # Нестандартный разделитель строкspam 99 [‘eggs’]...>>>Допускается одновременное использование именованных аргументов, определяющих разделители между объектами в строке и между строками, – они могут указываться в любом порядке, но только после объектов, которые требуется вывести:>>> print(x, y, z, sep=’...’, end=’!\n’)spam...99...[‘eggs’]!>>> print(x, y, z, end=’!\n’, sep=’...’)spam...99...[‘eggs’]!# Несколько именованных аргументов# Порядок не имеет значенияНиже демонстрируется порядок использования именованного аргумента file –с его помощью можно перенаправить вывод текста в файл, открытый для записи, или в другой объект, совместимый с операцией вывода (в действительности – это разновидность перенаправления потоков, о чем будет рассказыватьсяниже в этом разделе):>>> print(x, y, z, sep=’...’, file=open(‘data.txt’, ‘w’)) # Вывод в файл>>> print(x, y, z)# Вывод в поток stdoutspam 99 [‘eggs’]>>> print(open(‘data.txt’).read()) # Вывод содержимого текстового файлаspam...99...[‘eggs’]Наконец, имейте в виду, что возможность определить строку-разделитель объектов в строке и разделитель строк, предоставляемая функцией print, – этовсего лишь подручное средство.

При необходимости получить более сложноеформатирование совсем не обязательно использовать эту возможность. Вместо этого можно сконструировать строку заранее или прибегнуть к помощиинструментов форматирования, с которыми мы встречались в главе 7, внутривызова функции print, и вывести сконструированную строку единственнымвызовом print:>>> text = ‘%s: %-.4f, %05d’ % (‘Result’, 3.14159, 42)>>> print(text)Result: 3.1416, 00042366Глава 11.

Присваивание, выражения и print>>> print(‘%s: %-.4f, %05d’ % (‘Result’, 3.14159, 42))Result: 3.1416, 00042Как мы увидим в следующем разделе, практически все, что было сказаноо функции print в Python 3.0, точно так же применимо и к инструкции printв версии 2.6, особенно если учесть, что функция задумывалась как дальнейшее развитие и улучшение поддержки операции вывода в 2.6.Инструкция print в Python 2.6Как уже упоминалось выше, операция вывода в Python 2.6 реализована в видеинструкции с уникальным и весьма специфическим синтаксисом, а не в видевстроенной функции. На практике же печать? организованная в 2.6, являетсявариацией на ту же тему – за исключением строк-разделителей (которые поддерживаются в версии 3.0 и не поддерживаются в версии 2.6), для всех остальных возможностей функции print в версии 3.0 имеют прямые аналоги в инструкции print в версии 2.6.Формы инструкцииВ табл. 11.5 перечислены формы инструкции print в ������������������������Python������������������ 2.6 и эквивалентные им вызовы функции print в Python 3.0.

Характеристики

Тип файла
PDF-файл
Размер
12,21 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее