解释与区别
ASCII码 | 符号 | 意义 | 解释 |
10 | \n | 换行LF, Line Feed | 光标移动到下一行 * 不一定是下一行行开头 |
13 | \r | 回车CR, Carriage Return | 光标移动到本行开头 |
使用效果:
>>> print("00000\r111")
11100
>>> print("00000\n111")
00000
111
在不同的操作系统下,它们表现不同:
在Mac系统里,每行结尾只有"<换行>",即"\n"*;
在Unix系统里,每行结尾只有"<换行>",即"\n";
在Windows系统里面,每行结尾是"<回车><换行>",即"\r\n";
* 根据一些博客记录,较老版本的Mac系统每行结尾是"<回车>",即"\r"。
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
此外,ENTER键通常同时包含两者(CRLF)。
来历
"回车"(carriage return)和"换行"(line feed) 来源于机械英文打字机。
回车:"车"指的是纸车,带着纸一起左右移动的模块。当开始打第一个字之前,要把纸车拉到最右边,上紧弹簧;随着打字,弹簧把纸车拉回去。每当打完一行后,纸车就完全收回去了,所以叫回车。
换行:打字机左边有个"把手 ",往下扳动一下,纸会上移一行。
主要参考
Warren Sande, Carter Sande, Hello World! Computer Programming for Kids and Other Beginners, 2013, pp. 53.