我有以下要在变量可用的条件下打印的f字符串:

f"Percent growth: {self.percent_growth if True else 'No data yet'}"

结果是:
Percent growth : 0.19824077757643577

因此,通常我会使用类型说明符来实现浮点精度,如下所示:
f'{self.percent_growth:.2f}'

这将导致:
0.198

但这与if语句在这种情况下是困惑的。要么因为以下原因而失败,要么:
f"Percent profit : {self.percent_profit:.2f if True else 'None yet'}"

if语句变得不可访问。
或以第二种方式:
f"Percent profit : {self.percent_profit if True else 'None yet':.2f}"

每当条件导致else子句时,f字符串就会失败。

所以我的问题是,当f字符串可以产生两种类型时,如何在f字符串内应用浮点精度?

最佳答案

您可以为第一个条件使用另一个f字符串:

f"Percent profit : {f'{self.percent_profit:.2f}' if True else 'None yet'}"

诚然不理想,但确实可以做到。

10-04 13:16