python 3.5.2中的\ r是什么? (pycharm& Mac)

时间:2016-12-23 08:31:06

标签: python-3.x

我在mac中运行python 3.5.2中的代码。 (pycharm)

当我运行print(" abcz \ rdef")时,我期待得到defz,但我得到了def ... 现在发生了什么?

2 个答案:

答案 0 :(得分:2)

ASCII字符 0x0D 又名。 13 又名。 ^M 又名。 \r:**
首先,它不是Python属性,而是常见的ASCII代码。这意味着几乎所有编程语言都与字符 \r的行为相同。
请注意单数:def ONE char。

回车

这就是说,它对应Carriage Return (CR),基本上可以追溯到该行的开头。

在你的情况下你说“plz print abcz 然后回到开始并打印 def ”。 “回到开始”意味着你将覆盖当前行。因此abc覆盖zdefz保持不变,最后为您提供print("a\rb") # => b print("abcdef\rLOL") #=> LOLdef #etc...

\n

换行符:LF vs CR + LF:

事实是,根据您的操作系统,换行的处理方式不完全相同。大多数操作系统将使用单个\r\n作为换行符,而Windows使用LF: Unix and Unix-like systems (Linux, OS X, FreeBSD, Multics, AIX, Xenix, etc.), BeOS, Amiga, RISC OS, and others[1] CR+LF: Microsoft Windows, DOS (MS-DOS, PC DOS, etc.), DEC TOPS-10, RT-11, CP/M, MP/M, Atari TOS, OS/2, Symbian OS, Palm OS, Amstrad CPC, and most other early non-Unix and non-IBM OSes CR: Commodore 8-bit machines, Acorn BBC, ZX Spectrum, TRS-80, Apple II family, Oberon, the classic Mac OS up to version 9, MIT Lisp Machine and OS-9 RS: QNX pre-POSIX implementation 0x9B: Atari 8-bit machines using ATASCII variant of ASCII (155 in decimal) LF+CR: Acorn BBC and RISC OS spooled text output. 会导致奇怪的问题(请参阅下面的示例)。

引用wikipedia

\n

常见问题:
我想最常见的问题是在Linux上逐行读取Windows文本文件。作为一个Linux开发人员,你会期望一行以\n结尾,并且,假设你想要连续句子,你只会删除\r内部的危险# Open our two files fn1="file1.txt" fn2="file2.txt" f1=open(fn1, 'r') f2=open(fn2, 'r') while True: # Read 1 line in each l1 = f1.readline() l2 = f2.readline() # Check lines are not empty, or break if not l1 or not l2: break # Remove new lines l1 = l1.replace('\n', '') l2 = l2.replace('\n', '') # Print the result print("%s %s" % (l1, l2))

示例:我们想要连接两个文件中的每个句子。

l1

在上面的示例中,如果l2来自Windows,则只会看到l1已打印。 (事实上​​它已被覆盖,因此如果l2超过l2,您会看到l1 + for i in range(100000): print("\r%d" % i, end="") 的结尾

<强>例: 一个非常酷的例子是让计数器增加数字而不打印新行,试试这个:

pltrdy

xcrun atos -o MYAPP.app/MYAPP -arch arm64 -l 0x1000f4000 0x00000001002162c8

答案 1 :(得分:0)

感谢您回答我的问题。当我尝试你的例子时:    (print(“a \ rb”)#=&gt; b    print(“abcdef \ rLOL”)#=&gt; LOLdef

我还有b和LOL的答案.... 我不知道为什么会一直发生...... 我顺便使用pycharm ...让我知道我是如何解决的......