2014-06-10 66 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不错的抓,我相信这应该修复它 –