我想将0.0和39.9之间的float转换为字符串。将十位数字替换为L,T或Y(如果它们分别为1,2或3)。如果它在其中,则附加一个M。例如,22.3会返回T2.3,8.1会返回M8.1等等。否则,返回浮动。Python单线程将float转换为字符串
这段代码当然有用,但我想知道是否有更简单的(如果不是单线的)解决方案。这里是代码:
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
谢谢!
你必须小心所有'浮动'比较('SpT <= 9.9'等) – NPE
+1,NPE。当SpT为9.95时,期望的输出是多少?因为它大于'9.9'且小于'10.0',它会穿过裂缝并到达'return SpT'线。 – Kevin
这是一个很好的观点。如果我说明了这一点,但实际上它绝对不会出现在应用程序中。 –