gpt4 book ai didi

Python 字符串格式() : formatting nans as 'some text' ?

转载 作者:太空狗 更新时间:2023-10-30 02:58:12 27 4
gpt4 key购买 nike

我正在使用 string.format() 将一些数字格式化为字符串。 format() 是否可以选择显示特定文本(例如“不可用”)而不是 nan?我找不到它。还是我必须手动进行更换?

为了澄清评论中提出的观点,一个标题相似但上下文不同的问题was asked here .我的问题是不同的,因为该问题的作者希望将“nan”作为输出,但由于已修复的错误而得到了其他东西。

相反,我想了解 format() 是否有一个内置选项可以用其他文本替换“nan”。当然,我非常感谢我可以自己手动进行替换,但只是想知道这是否是 format() 的内置选项。

最佳答案

我不认为你可以使用 format 实现这一点,或者至少,我不知道如何实现。我知道可以做到的唯一方法是子类化 float,像这样:

from math import isnan

class myfloat(float):
def __str__(self):
if isnan(self):
return 'Not available'
else:
return super(myfloat, self).__str__()

按此,你可以得到:

>>> a = myfloat('nan')
>>> a
nan
>>> print(a)
Not available

如果您希望 a 的表示在解释器上显示为“不可用”,那么您必须改写 __repr__

替代黑客

为什么不对格式化字符串调用replace? (假设那里没有其他字符串部分显示为“nan”)。

>>> a = float('nan')
>>> print('This number is ' + ('%0.2f' % a).replace('nan', 'not available'))
This number is not available

关于Python 字符串格式() : formatting nans as 'some text' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com