| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Глава 7. Форматированный вывод Пока что мы встретили два способа вывода значений: вывод выражений и оператор Вам часто понадобятся более гибкие средства управления форматированным выводом, нежели простой вывод значений, разделенных пробелами. Ключ для получения лучшего форматирования в Python - сделать все строкой, которую Вы обрабатываете сами; используя кусочные операции и конкатенацию строк, можно создать любой вывод, который Вы в состоянии вообразить. Стандартный модуль Конечно же, остается один вопрос: как конвертировать значения в строки ? К счастью, в Python есть способ преобразования любого значения в строку: просто запишите его между кавычками (‘ ‘). Вот несколько примеров: >>> x=10*3.14 >>> y=200*200 >>> s=’Значение x равно ’+’x’+’, и y равен ’+’y’+’...’ >>> print s Значение x равно 31.4, и y равен 40000... # Заключение в кавычки работает и для других типов: ... p=[x,y] >>> ps=’p’ >>> ps ‘[31.4, 40000]’ >>> # Конвертирование строки добавляет кавычки и спецсимволы: ... hello=’привет, мир\n’ >>> hellos=’hello’ >>> print hellos ‘привет, мир\012’ >>> # Аргументом конвертирующих кавычек может быть тьюпл: ... ‘x,y,(‘spam’,’eggs’)’ "(31.4, 40000, (‘spam’, ‘eggs’))" >>> А вот два способа вывода таблицы квадратов и кубов: >>> import string >>> for x in range(1,11): ... print string.rjust(‘x’,2),string.rjust(‘x*x’,3), ... # Обратите внимание на последнюю запятую в предыдущей строке ... print string.rjust(‘x*x*x’,4) ... 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000 >>> for x in range(1,11): ... print ‘%2d %3d %4d’ % (x,x*x,x*x*x) ... 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000 >>> Замечание: один пробел между каждой колонкой - это работа оператора Этот пример демонстрирует функцию Эти функции ничего не выводят, они просто возвращают новую строку. Если строка вывода слишком длинная, то они не обрезают ее, а возвращают без изменения; это испортит вашу колонку вывода, но, все-таки, лучше, чем альтернатива вывода некорректных значений. (Если Вы действительно хотите обрезать строку, то всегда сможете добавить кусочную операцию: Существует другая функция >>> string.zfill(‘12’,5) ‘00012’ >>> string.zfill(‘-3.14’,7) ‘-003.14’ >>> string.zfill(‘3.14159265359’,5) ‘3.14159265359’ >>> [Назад][Содержание][Вперед] |
|
| ||||||||||||||||
|