|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
原题和给出的代码是这样
1. 视频中我们说 sum() 这个BIF有个缺陷,就是如果参数里有字符串类型的话就会报错,请写出一个新的实现过程,自动“无视”参数里的字符串并返回正确的计算结果
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([1, 2.1, 2.3, 'a', '1', True]))
我将代码改了一下:
def sum(x):
result = 0
for each in x:
if type(each) != str:
result += each
else:
continue
return result
print(sum([1, 2.1, 2.3, 'a', '1', True,]))
为何原题的结果是5.4,我改这个是6.4,我改的代码为何会多加了一个1
bool类是 int类 的 子类
True 就是 1
- >>> issubclass(bool,int)
- True
- >>> True == 1
- True
- >>> True.__class__
- <class 'bool'>
- >>> isinstance(True,int)
- True
复制代码
|
|