Что это означает? - PullRequest
       2

Что это означает?

3 голосов
/ 25 июля 2010

Что значит '\ r'?Что оно делает?Я никогда не видел это раньше, и это вызывает у меня головную боль.Кажется, он не имеет какой-либо цели, так как «a \ ra» печатается как «aa», но не совпадает со строкой «aa».Я использую Python 2.6

Ответы [ 4 ]

10 голосов
/ 25 июля 2010

Это старый управляющий персонаж от пишущих машинок.Это означает «возврат каретки».В это время, когда вы нажимали «ввод», вы переходили на следующую строку, затем каретка возвращалась к началу строки (отсюда и возврат каретки).Затем с компьютерами разные ОС делали разные варианты представления новых строк.На окнах у вас есть "\ r \ n" (возврат каретки + новая строка).На юнитах у вас есть только "\ n" (нет необходимости делать возврат каретки, это было как бы подразумевается новой строкой).В старых Mac OS у вас был только "\ r".

В настоящее время он не используется, за исключением перевода строки (или я не знаю других случаев использования).

8 голосов
/ 25 июля 2010

Для меня (в Mac OS X 10.5 Terminal.App, Python 2.6.5):

>>> print 'a\ra'
a

или для лучшего примера:

>>> print 'longstring\rshort'
shorttring

IOW, \r «возвращает курсор в начало строки» (без инициализации нового длинного), так что 'short' «перезаписывает» начало 'longstring'.

Этот эффект удобен для показа пользователю однострочного «текущего статуса», который обновляется во время длительной операции - используйте print '\rupdate', с завершающей запятой, чтобы избежать появления символа новой строки, чтобы обновить статус с помощью перезаписывая предыдущий. Конечно, вы должны убедиться, что каждая обновленная строка, показанная таким образом, по крайней мере такая же, как и предыдущая (легко, просто заполнив пробелами).

Обратите внимание, что другие респонденты заметили различные визуальные эффекты на своих платформах (вы сами видели, как \r исчезает без эффекта, что является беспрецедентным в моем опыте), поэтому этот хороший способ предоставления обновлений не будет работать на каждой платформе ! -)

1 голос
/ 25 июля 2010

Это спасение для возврата кареты.На моей консоли, работающей в Windows, print 'a\ra' приводит к ...

a
a

... распечатке на стандартный вывод.

Вот список всех допустимых выходов .

  • \newline - игнорируется
  • \\ - обратная косая черта ()
  • \' - одинарная кавычка (')
  • \" - двойная кавычка (")
  • \a - ASCII Bell (BEL)
  • \b - ASCII Backspace (BS)
  • \f -ASCII Formfeed (FF)
  • \n - ASCII Linefeed (LF)
  • \N{name} - Имя с именем символа в базе данных Unicode (только Unicode)
  • \r- Возврат каретки ASCII (CR)
  • \t - Горизонтальная табуляция ASCII (TAB)
  • \uxxxx - Символ с 16-разрядным шестнадцатеричным значением xxxx (только Unicode)
  • \Uxxxxxxxx - символ с 32-битным шестнадцатеричным значением xxxxxxxx (только Unicode)
  • \v - вертикальная вкладка ASCII (VT)
  • \ooo - символ с восьмеричным значением ooo
  • \xhh - Символ с шестнадцатеричным значением чч
0 голосов
/ 25 июля 2010

должен быть возврат каретки ... что-то вроде новой строки ... смотри http://www.wilsonmar.com/1eschars.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...