Python一行程序将浮点转换为字符串
我想将介于0.0和39.9之间的浮点值转换为字符串。如果十位数分别为1、2或3,则将其替换为L、T或Y。如果在1中,则附加一个M。例如,22.3将返回T2.3,8.1将返回M8.1,依此类推。否则,返回浮点值 这段代码当然可以工作,但我想知道是否有更简单(如果不是一个线性)的解决方案。代码如下:Python一行程序将浮点转换为字符串,python,Python,我想将介于0.0和39.9之间的浮点值转换为字符串。如果十位数分别为1、2或3,则将其替换为L、T或Y。如果在1中,则附加一个M。例如,22.3将返回T2.3,8.1将返回M8.1,依此类推。否则,返回浮点值 这段代码当然可以工作,但我想知道是否有更简单(如果不是一个线性)的解决方案。代码如下: def specType(SpT): if 0 <= SpT <= 9.9: return 'M{}'.format(SpT) elif 10.0 <= SpT <
def specType(SpT):
if 0 <= SpT <= 9.9:
return 'M{}'.format(SpT)
elif 10.0 <= SpT <= 19.9:
return 'L{}'.format(SpT - 10)
elif 20.0 <= SpT <= 29.9:
return 'T{}'.format(SpT - 20)
elif 30.0 <= SpT <= 39.9:
return 'Y{}'.format(SpT - 30)
else:
return SpT
def specType(SpT):
如果0那么:
def specType(SpT):
如果0.0,则返回{}{}.format('MLTY'[int(SpT//10)],SpT%10),您必须小心所有这些float
比较(SpT+1,NPE。当SpT
为9.95时,期望的输出是什么?因为它大于9.9
且小于10.0
,它从裂缝中掉落并到达返回SpT
行。这是一个很好的观点。如果我对此进行解释,这是最好的,但事实上,它在应用程序中永远不会出现。:O Mind=Blown!我从来都不知道你能做/
!@yentup你也可以使用:)@yentup这不是一个好的读物:)我的书签栏上还有两个:和(后者可能更高级一点)。太棒了!就是这样。谢谢
>>> specType(0.0)
'M0.0'
>>> specType(8.1)
'M8.1'
>>> specType(14.5)
'L4.5'
>>> specType(22.3)
'T2.3'
>>> specType(34.7)
'Y4.7'