PythonF字符串以不同的方式处理terminal和jupyter之间的新行

PythonF字符串以不同的方式处理terminal和jupyter之间的新行,python,jupyter-notebook,Python,Jupyter Notebook,我有一个函数,可以将音频设备信息格式打印到一个类似f字符串的表格中 这是一个例子: line1 = (f"ID {'Device Name':25}{'INP':4}{'OUT':4} SR INP-(Lo|Hi) OUT-(Lo/Hi) (Latency in ms)") lines = [line1] p1 = f"{0:<4g}{'INPUT':24}{'1':4}{'2':4}" p2 = f"{'44100'}" p3 = f"{'4.21'} {'10.33'}"

我有一个函数,可以将音频设备信息格式打印到一个类似f字符串的表格中

这是一个例子:

line1 = (f"ID {'Device Name':25}{'INP':4}{'OUT':4}   SR   INP-(Lo|Hi)  OUT-(Lo/Hi) (Latency in ms)")
lines = [line1]

p1 = f"{0:<4g}{'INPUT':24}{'1':4}{'2':4}"
p2 = f"{'44100'}"
p3 = f"{'4.21'} {'10.33'}"
p4 = f"{'3.3'} {'6.6'}"
lines.append(p1 + p2 + p3 + p4)
但是在终端
中,打印(行)
变成了一条长行

['ID Device Name              INP OUT    SR   INP-(Lo|Hi)  OUT-(Lo/Hi) (Latency in ms)', '0   INPUT                   1   2   441004.21 10.333.3 6.6']
我不得不加入新线,以打破这条线:

lines = "\n".join(lines)

如何在terminal和jupyter中获得一致的打印输出?非常感谢,因为您没有在jupyter中使用print命令。如果希望在jupyter和console中使用print命令获得相同的输出,请尝试以下操作:

  from IPython.display import display, HTML
  display(lines)


这是因为您没有在jupyter中使用print命令。如果希望在jupyter和console中使用print命令获得相同的输出,请尝试以下操作:

  from IPython.display import display, HTML
  display(lines)


在python3(不确定python2)中,有一个运算符用于此类打印,它位于列表之前

print(*行,sep='\n')

在python3(不确定python2)中,有一个运算符用于此类打印,它位于列表之前

print(*行,sep='\n')

您是否也在终端中调用
打印(行)
?如果只输入
,则打印的是
repr
版本。对于字符串,这将显示所有字符,包括文本
“\n”
字符。是的,我还在终端中调用print(行)。我得到了一个逗号分隔的长线条,我很难复制这个。我在jupyter笔记本中获得的输出与在terminal中相同:
打印(行)
显示行列表(如您在终端输出中看到的)。@SyntaxVoid,是的,您是对的。我有一个返回行的函数。在Jupyter上,我刚刚调用了这个函数,它打印了repr版本。这是我想要的格式。那么在终端中,有没有一种方法可以打印repr版本?我尝试打印(DeVice),但是没有LUKYU可以考虑一个不同的选项。尝试一些类似于获得漂亮表格的方法。您是否也在终端中调用
print(lines)
?如果只输入
,则打印的是
repr
版本。对于字符串,这将显示所有字符,包括文本
“\n”
字符。是的,我还在终端中调用print(行)。我得到了一个逗号分隔的长线条,我很难复制这个。我在jupyter笔记本中获得的输出与在terminal中相同:
打印(行)
显示行列表(如您在终端输出中看到的)。@SyntaxVoid,是的,您是对的。我有一个返回行的函数。在Jupyter上,我刚刚调用了这个函数,它打印了repr版本。这是我想要的格式。那么在终端中,有没有一种方法可以打印repr版本?我尝试打印(DeVice),但是没有LUKYU可以考虑一个不同的选项。试着找些好桌子,这太棒了。非常感谢。这太棒了。非常感谢。
  display(HTML(lines.to_html()))