条件字符串插值
Conditional 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
中有一个extraspace,即y = "That's your best"
而不是 "That's your best"
。
字符串插值是否自动添加 space?
你的问题:
Does string interpolation auto add an space?
没有。您只是在第一个模板字符串的末尾缺少一个 space,而在第二个模板字符串中有一个 space 太多了。使用:
x = f"{diff} short of " if diff > 0 else ""
并且:
y = f"That's {x}your best"
现在,仅当 x
不为空时,才会添加 x
之后的尾随 space。
下面的语法有什么问题?我想将 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
中有一个extraspace,即y = "That's your best"
而不是 "That's your best"
。
字符串插值是否自动添加 space?
你的问题:
Does string interpolation auto add an space?
没有。您只是在第一个模板字符串的末尾缺少一个 space,而在第二个模板字符串中有一个 space 太多了。使用:
x = f"{diff} short of " if diff > 0 else ""
并且:
y = f"That's {x}your best"
现在,仅当 x
不为空时,才会添加 x
之后的尾随 space。