f 字符串分隔新行

问题描述

有谁知道如何将这段代码变成一个 f 字符串(如果可能的话):

print(">>> Multi-line Comment",data,sep="\n")

因此,如果数据中有 2 个或更多组件,它将在新行中打印每个组件。上面的代码有效,只是让我烦恼,我可以为单行执行此操作,但不能为多行执行。

例如:这适用于单行

print(f">>> Single-line Comment\n{data}")

如果我知道有多少多行,这将起作用,在这种情况下为 2:

print(f">>> Multi-line Comment\n{str.splitlines(data)[0]}\n{str.splitlines(data)[1]}")

有什么想法可以让 f-string 版本像 print(">>> Multi-line Comment",sep="\n") 一样更加自动化?

解决方法

好吧,f-strings 不喜欢 \n,所以你必须解决它。您可以通过以下几种方式实现:

data = """Comment1
Comment2"""

x = data.splitlines()

print(f'[>>> Multi-line Comment",{chr(10)}{x[0]},{chr(10)}{x[1]}]')

或“伪造”它:

nl = "\n"
print(f'[>>> Multi-line Comment",{nl}{x[0]},{nl}{x[1]}]')

无论哪种情况,输出都应该是:

[>>> Multi-line Comment",Comment1,Comment2]