我想將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
這是一個很好的觀點。如果我說明了這一點,但實際上它絕對不會出現在應用程序中。 –