longzhou520 发表于 2020-12-18 14:30:02

第一个结果是5.4 第二个是6.4 为什么不一样呢?

def sum(x):
    result = 0
   
    for each in x:
      if (type(each) == int) or (type(each) == float):
            result += each
      else:
            continue

    return result

print(sum())


def sum(x):
    result = 0

    for each in x:
      if (isinstance(each,int) ) or (isinstance(each,float)):
            result += each
      else:
            continue

    return result


print(sum())
         

逃兵 发表于 2020-12-18 14:35:48

区别在于True
>>> isinstance(True,int)
True
>>> isinstance(True,bool)
True

>>> type(True)
<class 'bool'>

两种方法判断True会得到不一样的结果

如果你想将True作为数字运算用第二种,如果不想将True用作数字运算就用第一种
页: [1]
查看完整版本: 第一个结果是5.4 第二个是6.4 为什么不一样呢?