jac*_*118 9 python python-3.x f-string
如何使用带有逻辑的f-string格式化int为float?我想ppl是True格式化num为2位小数,如果ppl是False格式化为它是什么.
有点像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
Run Code Online (Sandbox Code Playgroud)
And*_*eak 13
您可以嵌套表达式来计算f-string中的内部表达式.这意味着您可以在f字符串内移动三元组:
string = f'I am {num:{".2f" if ppl else ""}}'
Run Code Online (Sandbox Code Playgroud)
请注意嵌套所需的额外一对括号.
但我不认为这更清洁.就个人而言,我发现解析这里发生的事情更加困难,而不是原始版本.毕竟简单比复杂更好; 扁平比嵌套更好.
Gam*_*rix 11
我建议您实际上将 fstring 分成两行
num_str = f'{num:.2f}' if ppl else f'{num}'
str = f'I am {num_str}'
Run Code Online (Sandbox Code Playgroud)
这样每一行都尽可能简单。
| 归档时间: |
|
| 查看次数: |
5479 次 |
| 最近记录: |