Python一行程序将浮点转换为字符串

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 <

我想将介于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 <= 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'