如何在不引入意外空格的情况下在多行上编写 f 字符串?

Kur*_*eek 5 python f-string

考虑以下代码片段:

name1 = "Nadya"
name2 = "Jim"

def print_string():
    string = f"{name1}\n\
{name2}"
    print(string)

print_string()
Run Code Online (Sandbox Code Playgroud)

产生

Nadya
Jim
Run Code Online (Sandbox Code Playgroud)

这有效,但string定义第二行缩进中的“中断”看起来很难看。我发现如果我缩进{name2}一行,这个缩进会出现在最后的字符串中。

我正在尝试找到一种方法来在新行上继续 f 字符串并缩进它,而不会在最终字符串中显示缩进。遵循我在普通字符串中看到的类似内容,我尝试过

name1 = "Nadya"
name2 = "Jim"

def print_string():
    string = f"{name1}\n"
             f"{name2}"
    print(string)

print_string()
Run Code Online (Sandbox Code Playgroud)

但这会导致IndentationError: unexpected indent. 我正在尝试以另一种方式可能吗?

Pru*_*une 11

string = f"{name1}\n"   \   # line continuation character
         f"{name2}"
Run Code Online (Sandbox Code Playgroud)

  • 根据 PEP8 Downovted:[换行长行的首选方法是在圆括号、方括号和大括号内使用 Python 的隐式续行。通过将表达式括在括号中,可以将长行分成多行。应优先使用这些内容而不是使用反斜杠来继续行。](https://www.python.org/dev/peps/pep-0008/#maximum-line-length): `string = ( f"{name }\n" f"{name2}" )` (2认同)