这段代码的问题出在哪里?
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))
实际上,我想将十进制字符串转换为十进制数字并在我的计算中使用它。
要将整个元组转换为
float
,您可以使用
map(float, test_case)
你可以用它求和
sum(map(float, test_case))
您将在此处循环遍历字符串中的每个字符:
for k in nums:
,这会导致float(k)
尝试转换.
字符。删除它
elif type(nums) == str:
# for k in nums:
float_num = float(nums)
s += float_num