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 次 |
最近记录: |