Найти в Дзене

repr в Python

Когда вы читаете и записываете файлы (да и строки тоже), у вас могут возникнуть неожиданности из-за непечатаемых символов, таких как пробелы, табуляция и перевод строки. И тогда, прочитав строку и ожидая увидеть там какой-то символ, вы его можете там не увидеть, поскольку перед ним имеется символ перевода строки и нужный вам символ находится уже на следующей строке. Такие вещи трудно отловить и предсказать. Однако в Python есть встроенная функция repr(), которая принимает любой объект в качестве аргумента и возвращает строковое представление объекта. И в этом строковом представлении нечитаемые символы представлены в виде последовательности с обратной косой чертой. Таким образом, передав в функцию какой-то текст, вы получите строку, где будут все символы этого текста видимы, в том числе и “невидимые”. Только перед невидимыми символами будет косая черта (\). Как видите, простой вывод строки отработал все управляющие символы - табуляция осталась табуляцией, и перевод строки перевёл строку

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

Однако в Python есть встроенная функция repr(), которая принимает любой объект в качестве аргумента и возвращает строковое представление объекта. И в этом строковом представлении нечитаемые символы представлены в виде последовательности с обратной косой чертой. Таким образом, передав в функцию какой-то текст, вы получите строку, где будут все символы этого текста видимы, в том числе и “невидимые”. Только перед невидимыми символами будет косая черта (\).

Как видите, простой вывод строки отработал все управляющие символы - табуляция осталась табуляцией, и перевод строки перевёл строку. То есть вывод у нас получился из двух строк.

А вот использование repr() сделало своё дело - мы получили одну строку, которую в некоторых случаях будет проще обработать. Но здесь, конечно, как и всегда, надо руководствоваться здравым смыслом и исходить из задач. Просто знайте, что такая возможность есть.

Также напомню, что, например, перевод строки в разных системах выполняется с помощью разных символов (или последовательностей символов). Например, в какой-то ОС перевод выполняется с помощью символа новой строки (\n), а в другой - с помощью символа перевода каретки (\r). А где-то используется последовательность этих символов. И если вы перемещаете эти файлы между системами (например, из Windows в Linux), то в каких-то случаях эти несоответствия также могут вызвать неприятности.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.