【发布时间】:2020-06-09 00:24:58
【问题描述】:
一个 for 循环,将所有 4 位偶数一个接一个地相加,打印每 100 个数字的中间和(即在索引位置 99、199、299,...)及其索引号。到目前为止,这是我的答案:
l = range(1, 1000, 2)
sum1 = 0
for i in range(len(l)):
sum1 += l[i]
if i % 100 == 99 and (len(l[i]) == 4):
print(sum1, i)
print(sum1)
这是我得到的错误:
TypeError Traceback (most recent call last) <ipython-input-175-6ae4f990101a> in <module> 4 for i in range(len(l)): 5 sum1 += l[i] ----> 6 if i % 100 == 99 and (len(l[i]) == 4): 7 print(sum1, i) 8 TypeError: object of type 'int' has no len()
谁能告诉我我做错了什么?任何帮助将不胜感激。谢谢!
【问题讨论】:
-
你认为错误信息是什么意思?
len指容器中的元素个数;int的更好选择是检查震级。 -
我只读了回溯。如果你想使用 len 来检查一个 int 的位数,你可以先把它变成一个字符串: len(str(my_int)) 你得到一个错误,因为一个数字没有实际长度,只有它的视觉表现确实如此。
-
@dominik 我走对了吗? len 函数在 for 循环中仅获取 4 位数字是否正确?抱歉,我对 Python 完全陌生。
标签: python python-3.x for-loop