我有一堆浮点数,它们是x.0或x.5,如果它们是x.0,我想不显示小数点,如果它们是x.5,我想要显示一个小数点。< / p>
我想出了一个完成这项任务的单线:
f'{x:+.{int(bool(x % 1))}f}'
int(bool(x % 1))
总是0或1,具体取决于modulo是否产生余数。
这很好,因为我的浮动输入的性质,但它让我思考,如果我的输入不是那么整洁怎么办?例如,以10.01
作为输入的上述单行返回10.0
。我的诱惑是首先将浮点数调整到所需的精度:
f'{x:+.{int(bool(round(x, 1) % 1))}f}'
如果我的第一个例子中的f-string
内部已经发生了很多事情,那么现在就有。
要清楚我的问题:
首先,这是我的第一个方法&#39;对&#39;考虑到我的实际投入,我想实现的目标是什么?
其次,在假设问题和我的第二个例子的情况下怎么样?
第三,我想在社区中发表关于f-string
使用何时使用滥用行为的意见。作为一个例子,人们可能想要将大量内容打包到f-string
中,如何获得包含数字的字符串列表按字母顺序排序:
f"String with number:{' ' if x >= 1000 else ' ' if x >= 100 else ' ' if x >= 10 else ' '}{x:+.{int(bool(round(x, 1) % 1))}f}"
因此,我希望将有关过度使用f-string
的问题与我的舍入问题联系起来并不会导致整体问题过于模糊,但这些是我一起考虑的两个问题。我认为整洁&#39;整洁&#39; f-string
的{{1}}可以提供诱惑,将一切都变成单线。