2014-06-10 65 views
1

假設我有數字字符串。我想刪除所有的尾隨零和小數點,如果有必要。例如 -從Python中的數字字符串中刪除零

'0.5' -> '.5' 
'0005.00' -> '5' 

我用這個方法:

s.strip("0") # where 's' contains the numeric string. 

但對於0005.00,它返回5.,所以我會如何,如果必要去掉小數點。

回答

2

要做到這一點,你可以寫一個小功能

def dostuff(s): 
    s = s.strip('0') 
    if len(s) > 0 and s[-1] == '.': 
     s = s[:-1] 
    return s 

這條所有0 S和如果.被發現,它是在字符串的結尾(意味着其小數點沒有任何跟着它),它也會使用[s:-1](這剝去最後一個字符)去掉它。

s[-1]獲取字符串的最後一個字符。有了這個,我們可以檢查.是否是最後一個字符。

這可以用更少的代碼使用正則表達式來實現,但我認爲這是容易按照

演示

>>> print dostuff('5.0') 
5 
>>> print dostuff('005.00') 
5 
>>> print dostuff('.500') 
.5 
>>> print dostuff('.580') 
.58 
>>> print dostuff('5.80') 
5.8 
+0

@DSM不錯的抓,我相信這應該修復它 –