Формула f-строки внутри фигурных скобок не работает - PullRequest
0 голосов
/ 03 октября 2018

Я на Python 3.7.

Мой код в строке 3 работает нормально, однако, когда я вставляю базовую формулу в строку 4, мой код возвращает ошибку:

SyntaxError: f-string: mismatched '(', '{' или '[' (ошибка указывает на первое '(' в строке 4.

Мой код:

cheapest_plan_point = 3122.54
phrase = format(round(cheapest_plan_point), ",")
print(f"1: {phrase}")
print(f"2: {format(round(cheapest_plan_point), ",")}")

Я не могу понять, что не так со строкой 4.

1 Ответ

0 голосов
/ 03 октября 2018

Вы использовали " кавычки внутри строки "..." с разделителями.

Python видит:

print(f"2: {format(round(cheapest_plan_point), "
      ,
      ")}")

, поэтому )} является новой отдельной строкой .

Используйте разные разделители:

print(f"2: {format(round(cheapest_plan_point), ',')}")

Однако , вам не нужно использовать format() здесь .В строке f вы уже форматируете каждое интерполированное значение!Просто добавьте :,, чтобы применить инструкцию форматирования непосредственно к результату round():

print(f"2: {round(cheapest_plan_point):,}")

Формат {expression:formatting_spec} применяет formatting_spec к результату expression, как если бы вы использовали {format(expression, 'formatting_spec')}, но без необходимости вызова format() и без необходимости ставить часть formatting_spec в кавычки.

...