返回顶部

如何使用带逻辑的 f-string 将 a 格式化int为 a float?我想 if pplisTrue格式化num为 2 位小数,如果ppl是Falserformat 则不管它是什么。 类似的东西,string = f'i am {num:.2f if ppl else num}'但这不起作用。如果可能的话,下面的代码演示了我想用更简单的 f 字符串实现的行为: ppl = True num = 3 string = f'I am {num:.2f}' if ppl else f'I am {num}' print(string) #if ppl False #=> i am 3 #if ppl True #=> i am 3.00

1

0/300

评论 1

Kola@小象学院

您可以嵌套表达式以评估 f 字符串中的内部表达式。这意味着您可以在 f-string 中移动三元组: string = f'I am {num:{".2f" if ppl else ""}}' 请注意嵌套所需的额外一对大括号。 但我不认为这更干净。就我个人而言,与您清晰的原始版本相比,我发现更难解析这里发生的事情。毕竟简单总比复杂好;平面优于嵌套。

2022-01-10 15:05:58

- 没有更多了 -