【总结】回车换行符/r/n 的区别与来历,原来如此。。

本文介绍了计算机中“回车”和“换行”的由来,追溯到早期的打字机时代,并解释了不同操作系统中如何处理这些字符的区别。

有看过《辛德勒的名单》的朋友应该记得有这么个场景,当时辛德勒想招一个打字员,一个胖胖的妇女前来面试,打字飞快。不知道大家有没有注意,她每打完一行都要手动将打字机的针头移回至行首,然后再移至下一行继续,这其实就是“回车(carriage Return)、换行(Next line)”的来历,很形象吧。

此外在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车/r”,告诉打字机把打印头定位在左边界;另一个叫做“换行/n”,告诉打字机把纸向下移一行,这就是“/r”和“/n”的来历。

 

于是这两段历史使得他们自然就对应了起来。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix 系统里,每行结尾只有“<换行>”,即“/n”;Windows系统里面,每行结尾是“<换行><回车>”,即“ /n/r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会 变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

而在c语言编程时(windows系统),/r 就是return 回到本行行首,这就会把这一行以前的输出给覆盖掉。

任务描述   几何图形是从现实世界抽象出的各种图形,如矩形、三角形、圆形等,可以用来刻画错综复杂的世界。在 Python 中,除了用绘图库绘制外,也可以利用print函数打印几何图形,而本关任务是打印一个高度为 n 的等腰三角形,如 n=4 时,打印结果如下: * *** ***** *******   即 n=4 时共有 4 行,其中: 第 1 行:3 个空格、1 个星号、3 个空格; 第 2 行:2 个空格、3 个星号、2 个空格; 第 3 行:1 个空格、5 个星号、1 个空格; 第 4 行:0 个空格、7 个星号、0 个空格。 相关知识 例题   若用print打印一个边长为 n 的正方形,代码如下: n = 4 for i in range(n): print('*' * n)   最后一行将字符串整数n相乘,表示将这个字符串重复拼接 n 次,如'*' * 4是****、'abc'*3是abcabcabc。此外,字符串字符串可以相加,其作用也是拼接,如'abc'+'def'的结果是'abcdef'。   因显示原因,上面的程序打印出来的结果看起来并不像正方形,可以将最后一行的'*' * n改为'* ' * n,即在第 1 个星号后面添加两个空格(本关过关程序中不用这么做)。 特殊字符   在字符串里面,有时会出现一些以\开头的特殊字符(称为转义符),如\n表示换行符(类似回车键的效果)、\t表示制表符(比空格更宽且宽度可变的一段空白)。尝试如下程序,观察这些特殊符号的显示效果。 print('a\nb') #a和b分两行显示,因为它们中间有一个换行符\n print('ccc\td') #ccc和d之间有一段较长的空白,即为制表符\t print('e\tf') #f上行的d对齐,形成表格效果,这也是“制表”的由来   可上网查询 Python 中的其他转义符。 print 的行尾符   行尾符是print在打印内容尾部添加的字符串。默认情况下,print的行尾符是换行符\n,所以每次使用print都会从新的一行开始打印,例如下面的程序两次使用print,打印出来的就是两行: print('a') #打印a,在a后面添加\n print('b') #打印b,在b后面添加\n   也可以手动设置print的行尾符,如下面的程序打印结果只有一行(a-b-): print('a', end='-') #将行尾符设置为-,打印a后,在后面添加- print('b', end='-') #将行尾符设置为-,打印b后,在后面添加-   如果想把若干个print的打印内容首尾拼接成一行,可以将行尾符设置成空字符串''(两个连续的引号),即包含 0 个字符的字符串,表示行尾什么都不加。比如,要打印“3 个减号、1 个星号、3 个减号”,程序可以是: print('-'*3, end='') #打印3个减号 print('*', end='') #打印1个星号 print('-'*3) #打印3个减号,然后添加\n   本关就可以采用这种方式打印三角形的每一行。 print 的分隔符   除行尾符外,print里面还有分隔符的概念,即print用来分隔多个打印对象所用的字符串。默认情况下,print使用空格作为分隔符,例如下面的程序打印结果为a b c,三个字符之间以空格分隔。 print('a','b','c') #依次打印a、b、c,并在它们之间加上空格   也可以手动设置print的分隔符,如下面的程序打印结果是a+b+c。 print('a','b','c', sep='+') #将分隔符设置为+ 编程要求   补全 Begin-End 区间的代码,其功能是打印高度为 n (用变量n表示)的等腰三角形,不要改动 Begin-End 区间之外的代码。n = int(input()) ########## Begin ########## ########## End ##########
最新发布
11-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值