Сообщить об ошибке.

Создание макета для печати базовыми методами строк в Python

Вывод переменных для отладки кода

Можно самостоятельно обрабатывать все строки, используя операции среза и объединения строк для создания любого макета, который можно себе представить. Тип str имеет несколько методов, которые выполняют полезные операции: заполнения строк до заданной ширины столбца, выравнивания и центрирование строк.

Когда вам нужно быстрое отображение некоторых переменных для отладки, вы можете преобразовать любое значение в строку с помощью функций repr() или str().

Функция str() предназначена для возврата представлений значений, которые достаточно удобочитаемы для человека, в то время как функция repr() предназначена для генерации представлений, которые могут быть прочитаны интерпретатором или принудительно вызовет исключение SyntaxError - синтаксическую ошибку, если нет эквивалентного синтаксиса.

Для объектов, которые не имеют определенного представления для чтения человеком, функция str() возвращает то же значение, что и функция repr(). Многие значения, такие как числа или структуры, такие как списки и словари, имеют одинаковое представление с помощью любой из этих функции.

Примеры использования:

>>> s = 'Hello, world.'
>>> str(s)
# 'Hello, world.'

>>> repr(s)
# "'Hello, world.'"

>>> str(1/7)
# '0.14285714285714285'

>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'
>>> print(s)
# The value of x is 32.5, and y is 40000...

# 'repr()' строки добавляет строковые кавычки и обратные косые черты
>>> hello = 'hello, world\n'
>>> hellos = repr(hello)
>>> print(hellos)
# 'hello, world\n'

# Аргументом для 'repr()' может быть любой объект Python
>>> repr((x, y, ('spam', 'eggs')))
# "(32.5, 40000, ('spam', 'eggs'))"

Вот та же таблица квадратов и кубов, отформатированная вручную:

>>> for x in range(1, 11):
...     print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
...     # использование 'end' на предыдущей строке
...     print(repr(x*x*x).rjust(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

Обратите внимание, что в примере, один пробел между каждым столбцом был добавлен в результате работы функции print(). Она всегда добавляет пробелы между своими аргументами.

Метод строки str.rjust() выравнивает строку по правому краю в поле заданной ширины, заполняя его пробелами слева. Существуют аналогичные методы str.ljust() и [str.center()]str.center. Эти методы ничего не изменяют, они просто возвращают новую строку. Если входная строка меньше ширины, заданной в указанных методах, они не усекают ее, а возвращают без изменений. Если нужно усекать строки на выходе, всегда можно добавить операцию среза. Например str.ljust(n)[: n].

Есть и другой метод, str.zfill(), который заполняет числовую строку слева нулями. Он понимает знаки плюс '+' и минус '-':

>>> '12'.zfill(5)
# '00012'
>>> '-3.14'.zfill(7)
# '-003.14'
>>> '3.14159265359'.zfill(5)
# '3.14159265359'