将字符串转换为十进制数字时出现问题

问题描述 投票:0回答:2

这段代码的问题出在哪里?

def my_average(*num):
    s, count = 0, 0
    for nums in num:
        if type(nums) == int:
            s += nums

        elif type(nums) == float:
            s += nums

        elif type(nums) == str:
            for k in nums:
                float_num = float(k)
                s += float_num

        count += 1
    return round(s / count, 2)

test_case = (2, 3, 25, '234.123123', 3, 1, 0)
print(my_average(*test_case))

实际上,我想将十进制字符串转换为十进制数字并在我的计算中使用它。

python string list tuples decimal
2个回答
0
投票

要将整个元组转换为

float
,您可以使用

map(float, test_case)

你可以用它求和

sum(map(float, test_case))

0
投票

您将在此处循环遍历字符串中的每个字符:

for k in nums:
,这会导致
float(k)
尝试转换
.
字符。删除它

        elif type(nums) == str:
            # for k in nums:
                float_num = float(nums)
                s += float_num
© www.soinside.com 2019 - 2024. All rights reserved.