它在普通的python交互模式下工作:
>>> """1
...
... 2"""
'1\n\n2'
Run Code Online (Sandbox Code Playgroud)
然而,第二个\n进入了iPython
In [4]: """1
...:
...: 2"""
Out[4]: '1\n2'
Run Code Online (Sandbox Code Playgroud)
怎么了?
最后我发现这个问题在最新版本中已经解决了。这是提交
原因是,当IPythonuseraw_input捕获什么使用类型时,\n正在被剥离。然后该字符串将在后面附加一个“\n”。但是,如果字符串是空字符串,它将被丢弃。流程如下:
if not s:
return
s = s+'\n'
Run Code Online (Sandbox Code Playgroud)