关于python:如何在不引入非预期空格的情况下在多行上编写f-string?

How to write an f-string on multiple lines without introducing unintended whitespace?

本问题已经有最佳答案,请猛点这里访问。

请考虑以下代码段:

1
2
3
4
5
6
7
8
9
10
name1 ="Nadya"
name2 ="Jim"

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

    print(string)

print_string()

产生

1
2
Nadya
Jim

这是可行的,但string定义第二行的缩进"中断"看起来很难看。我发现,如果缩进{name2}行,这个缩进将显示在最后一个字符串中。

我试图找到一种方法,在新行上继续F字符串,并缩进它,而不在最后一个字符串中显示缩进。跟我在普通弦上看到的相似的东西,我试过

1
2
3
4
5
6
7
8
9
10
name1 ="Nadya"
name2 ="Jim"

def print_string():
    string = f"{name1}
"

             f"{name2}"
    print(string)

print_string()

但这导致了一个IndentationError: unexpected indent。我正在尝试的是另一种方式吗?


1
2
3
string = f"{name1}
"
  \   # line continuation character
         f"{name2}"