这代表什么?

cal*_*pto 3 python syntax

'\ r'是什么意思?它有什么作用?我以前从未见过它而且让我感到头疼.它似乎没有任何目的,因为'a\ra'打印为'aa',但它与字符串'aa'不同.我使用python 2.6

Sch*_*ron 10

它是打字机的旧控制角色.这意味着"回车".在这个时候,当你按下"输入"时,你将进入下一行,然后马车返回到行的开头(因此回车).然后使用计算机,不同的操作系统做出了不同的选择来表示新的行.在Windows上,你有"\ r \n"(回车+换行).在unices上,你只有"\n"(不需要回车,新线就暗示了这一点).在旧的Mac OS上,你只有"\ r \n".

如今,除了换行符之外没有使用它(或者我不知道其他用法).

  • 它偶尔用于在一行上显示更新进度指示器:`printf("1 %%"); fflush(stdout中); 睡眠(1); 的printf( "\ R2 %%");`.第一个printf将光标留在行尾.第二个printf使用`\ r`将光标移回到行的开头,然后用`2%`覆盖`1%`. (7认同)

Ale*_*lli 8

对我来说(在Mac OS X 10.5 Terminal.App,Python 2.6.5上):

>>> print 'a\ra'
a
Run Code Online (Sandbox Code Playgroud)

或者给出一个更好的例子:

>>> print 'longstring\rshort'
shorttring
Run Code Online (Sandbox Code Playgroud)

IOW,\r"将光标返回到行的开头"(不启动新的long),以便'short'"覆盖"开头'longstring'.

这种效果很好地向用户显示在长时间操作期间正在更新的单行"当前状态" - 使用print '\rupdate',尾随逗号来避免发出新行字符,通过覆盖前一个字符来更新状态.当然,您需要确保每个更新的字符串至少与前一个字符串一样长(只需填充空格即可).

请注意,其他响应者已经注意到他们的平台上有不同的视觉效果(你自己已经看到\r消失而没有效果,这在我的经验中是前所未有的)所以这种提供更新的好方法在每个平台上都不会很好用! - )