Можно самостоятельно обрабатывать все строки, используя операции среза и объединения строк для создания любого макета, который можно себе представить. Тип 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'