条件字符串插值

时间:2019-02-10 09:03:44

标签: python python-3.x string-interpolation

以下语法有什么问题?如果x,我想将{diff} short of分配给diff > 0,否则它将是一个空字符串。

diff = 1
x = f"{diff 'short of' if diff > 0 else ''}"

编辑: 根据评论,似乎正确的方法是:

x = f"{diff} short of" if diff > 0 else ""

但是,我还需要将x放在另一个字符串插值中,例如

y = f"That's {x} your best"

现在的问题是,如果x为空,则y中有一个多余空间,即y = {"That's your best"而不是{{1} }。 字符串插值会自动添加空格吗?

1 个答案:

答案 0 :(得分:1)

对您的问题:

  

字符串插值会自动添加空格吗?

不。您只是在第一个模板字符串的末尾缺少一个空格,而在第二个模板字符串中却有太多的空格。使用:

x = f"{diff} short of " if diff > 0 else ""

并且:

y = f"That's {x}your best"

现在,仅当x不为空时,才添加x之后的尾随空格。