|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码:
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"))
为什么要输入列表才能正常运行,输入字符串打印结果为0,然而像下面代码,比较大小可以输入字符串跟列表
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"))
首先来说下print(sum_My("1,2.1,2.3,'a','1',True"))
这个里面x="1,2.1,2.3,'a','1',True",这是一个字符串包换22个元素,那么循环会进行22次,第一次each='1',第二次each=','......第22次each = 'e',但是循环在if判断时每次都为假,固均不执行result += each代码,所以最后result为最初赋予的值result = 0
验证,代码修改如下
>>> def sum_My(x):
result = 1 //result初始值为1
time = 0 //记录循环次数的变量,初始为0
for each in x:
time += 1
if(type(each)== int)or(type(each)==float):
result += each
else:
continue
return result,time
>>> sum_My("1,2.1,2.3,'a','1',True")
(1, 22)
>>>
可以看到结果为result = 1,为最初赋予的值,time=22次,为循环的次数.
|
|