Python 函数,该函数接受1个iterable参数并添加列表中的所有对象(如果是int或float)?

Python 函数,该函数接受1个iterable参数并添加列表中的所有对象(如果是int或float)?,python,Python,我需要创建一个函数,该函数接受一个iterable参数,并添加列表中的所有对象(如果它们是int或float)。应该跳过不是int或float的对象,并返回int和float之和。 我需要使用循环和isinstance函数。 如果有输入[5.3,2,“Book”,True],则返回的float对象应等于7.3。 到目前为止,我已经: def add_numbers_in_list(number_list): for x in number_list: try:

我需要创建一个函数,该函数接受一个iterable参数,并添加列表中的所有对象(如果它们是int或float)。应该跳过不是int或float的对象,并返回int和float之和。 我需要使用循环和isinstance函数。 如果有输入[5.3,2,“Book”,True],则返回的float对象应等于7.3。 到目前为止,我已经:

def add_numbers_in_list(number_list):
    for x in number_list:
        try:
            yield float(x)
        except ValueError:
            pass
number_list = [5.3, 2, "Book", True]
print(sum(add_numbers_in_list(number_list)))

我得到的答案是8.3。

这是因为
float(True)
等于
1
。要修复代码,可以执行以下操作:

def将数字添加到数字列表(数字列表):
对于编号列表中的x:
如果在[float,int]中键入(x):#在这里更改
收益浮动(x)
数字列表=[5.3,2,“书”,真]
打印(总和(将数字添加到列表(数字列表))中)
如果要存储并返回计数,可以使用以下脚本:

def将数字添加到数字列表(数字列表):
计数=0
对于编号列表中的x:
如果在[float,int]中键入(x):
计数+=浮点(x)
返回计数
数字列表=[5.3,2,“书”,真]
打印(在列表(数字列表)中添加数字)

提示:检查
浮点(True)
的结果。这是否回答了您的问题?如何将其添加到函数中,以便在函数完成后获得返回值并打印?@Justice请立即检查答案。希望能有帮助