Вопрос:

Почему \ n работает только в строке f при печати?

python f-string

38 просмотра

1 ответ

21 Репутация автора

Я работаю над школьным заданием для python / pandas и хотел опробовать f строк, что казалось очень удобным способом форматирования.

Прочитав документацию, я понял, что не могу использовать \ n для форматирования вывода. Для этого кода:

    f"Shape of dataset:\n {df.shape} (rows, columns)\n"

Я получаю этот вывод:

Out[38]: 'Shape of dataset:\n (270792, 11) (rows, columns)\n'

Это именно то, что я ожидал после прочтения документов.

Но тогда, когда я окружаю его print(), как таковой:

print(f"Shape of dataset:\n {df.shape} (rows, columns)\n")

Я выгляжу так, как я хотел:

Shape of dataset:
 (270792, 11) (rows, columns)

Я знаю, что могу просто использовать обычное форматирование, но мне интересно, почему это так. Это то, что компонент строки f игнорируется из-за print?

Автор: Laura Prado Источник Размещён: 25.04.2019 09:34

Ответы (1)


3 плюса

18682 Репутация автора

Это не специфично для f-строк. Вот результат в QPython REPL на моем телефоне:

>> "\nhello\n" 
'\nhello\n'

Если вы вводите строку в REPL, escape-символы (например, \ n) остаются без изменений. Они только «выражены», когда явно printисключены. Даже если P в REPL означает «печать», REPL, очевидно, использует другой механизм для печати или вручную экранирует символы перед печатью, чтобы сохранить их.

Это может быть полезно при проверке строк, поскольку при выводе на печать может быть трудно обнаружить слегка «невидимые» символы, такие как переводы строк и табуляции.

Автор: Carcigenicate Размещён: 25.04.2019 09:40
Вопросы из категории :
32x32