12

我在 Python 3.7 上。

我在第 3 行的代码工作正常,但是当我将基础公式插入第 4 行时,我的代码返回错误:

SyntaxError: f-string: mismatched '(', '{', or '[' (错误指向第 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 行有什么问题。

4

1 回答 1

18

您在分隔字符串中使用"了引号。"..."

Python 看到:

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

所以 the)}是一个新的、单独的 string

使用不同的分隔符:

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部分放在引号中。

于 2018-10-03T13:05:26.107 回答