问题描述
有谁知道如何将这段代码变成一个 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]