Условная интерполяция строк - PullRequest
0 голосов
/ 10 февраля 2019

Что не так с синтаксисом ниже?Я хочу назначить 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", а не "That's your best".Автоматическая интерполяция строк добавляет пробел?

1 Ответ

0 голосов
/ 10 февраля 2019

На ваш вопрос:

Автоматическая интерполяция строк добавляет пробел?

Нет.Вам просто не хватает одного пробела в конце первой строки шаблона, а во втором - слишком много пробела.Используйте:

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

И:

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

Теперь завершающий пробел после x будет добавлен, только если x не пусто.

...