大括号内的 f 字符串公式不起作用

f-string formula inside curly brackets not working

我在 Python 3.7.

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

语法错误:f 字符串:不匹配的“(”、“{”或“[” (错误指向第 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 行有什么问题。

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

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