gpt4 book ai didi

python - 在 Python 中删除小数点后的尾随零

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:56 24 4
gpt4 key购买 nike

我正在使用 Python 2.7。我需要替换末尾的 "0" 字符串。

例如,a = "2.50":

 a = a.replace('0', '')

我得到 a = 2.5,我很满意这个结果。

现在 a = "200":

 a = a.replace('0', '')

我得到 a = 2,此输出符合我同意的设计。但我希望输出 a = 200。

其实我在找的是

when any value after decimal point at the end is "0" replace that "0" with None value.

下面是示例,我期待结果。

IN: a = "200"
Out: a = 200
In: a = "150"
Out: a = 150
In: a = 2.50
Out: a = 2.5
In: a = "1500"
Out: a = 1500
In: a = "1500.80"
Out: a = 1500.8
In: a = "1000.50"
Out: a = 1000.5

不是一个值是字符串。

注意:有时 a = 100LLa = 100.50mt

最佳答案

您可以使用正则表达式来做到这一点:

import re

rgx = re.compile(r'(?:(\.)|(\.\d*?[1-9]\d*?))0+(?=\b|[^0-9])')

b = rgx.sub('\2',a)

其中ba去掉小数点后尾零的结果。

我们可以把它写在一个很好的函数中:

import re

tail_dot_rgx = re.compile(r'(?:(\.)|(\.\d*?[1-9]\d*?))0+(?=\b|[^0-9])')

def remove_tail_dot_zeros(a):
return tail_dot_rgx.sub(r'\2',a)

现在我们可以测试一下:

>>> remove_tail_dot_zeros('2.00')
'2'
>>> remove_tail_dot_zeros('200')
'200'
>>> remove_tail_dot_zeros('150')
'150'
>>> remove_tail_dot_zeros('2.59')
'2.59'
>>> remove_tail_dot_zeros('2.50')
'2.5'
>>> remove_tail_dot_zeros('2.500')
'2.5'
>>> remove_tail_dot_zeros('2.000')
'2'
>>> remove_tail_dot_zeros('2.0001')
'2.0001'
>>> remove_tail_dot_zeros('1500')
'1500'
>>> remove_tail_dot_zeros('1500.80')
'1500.8'
>>> remove_tail_dot_zeros('1000.50')
'1000.5'
>>> remove_tail_dot_zeros('200.50mt')
'200.5mt'
>>> remove_tail_dot_zeros('200.00mt')
'200mt'

关于python - 在 Python 中删除小数点后的尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44111169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com