Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 前导零后加逗号_Python_Python 3.x - Fatal编程技术网

Python 前导零后加逗号

Python 前导零后加逗号,python,python-3.x,Python,Python 3.x,所需结果(最终浮点值): 00→ 0.0 二十→ 20.0 十五→ 15.0 05→ 0.5 003→ 0.03 01→ 0.1 我该怎么做?初始值是一个字符串,但当我将其转换为float时,零将消失。有没有为此预先制作的函数?从您的示例来看,似乎您可以在第一个字符后添加一个小数,然后将其转换为float。例如 my_num = '002' my_num = float(my_num[0] + '.' + my_num[1:]) 和往常一样,在施法时,用try/except将其包裹起来,以防

所需结果(最终浮点值):

00→ 0.0

二十→ 20.0

十五→ 15.0

05→ 0.5

003→ 0.03

01→ 0.1


我该怎么做?初始值是一个字符串,但当我将其转换为float时,零将消失。有没有为此预先制作的函数?

从您的示例来看,似乎您可以在第一个字符后添加一个小数,然后将其转换为float。例如

my_num = '002'
my_num = float(my_num[0] +  '.' + my_num[1:])
和往常一样,在施法时,用try/except将其包裹起来,以防输入不可施法。

您可以使用float

例如:

a=“20”


y=float(a)

使用正则表达式很容易做到这一点

In [1]: import re

In [2]: def reformat_numbers(num):
   ...:     return float(re.sub('^0', '0.', num))
   ...: 

In [3]: [reformat_numbers(n) for n in ['00', '20', '15', '05', '003', '01']]
Out[6]: [0.0, 20.0, 15.0, 0.5, 0.03, 0.1]

我不确定你想做什么,因为你没有给出规范,只有例子。但这是可行的:

for num in ("00", "20", "15", "05", "003", "01"):
    if num[0] == '0':
        print('0.' + num[1:])
    else:
        print(num + '.0')
测试:

$ python3 convert.py 
0.0
20.0
15.0
0.5
0.03
0.1

另一个处理异常的简单实现:

import math
x = ['00', '20', '15', '05', '003', '01', '0']

def convert_to_float(val):
    try:
        if val[0] == '0':
            if len(val[1:]) > 0:
                decimal_part = float(val[1:])
                val = decimal_part / math.pow(10, len(val[1:]))
            else:
                val = 0.0
        else:
            val = float(val)
    except ValueError:
        print('Not a number')
    return val

for val in x:
    print(convert_to_float(val))
输出:

0.0
20.0
15.0
0.5
0.03
0.1
0.0

你能在第一次聊天后添加一个小数点,然后将其转换为浮点吗?Thoms已经提到了转换为浮点,但他注意到了一个问题。