对于添加 4 位偶数的循环



一个 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()

谁能启发我做错了什么?任何帮助将不胜感激。谢谢!

您无法测量整数中的字符数,因为它不是字符串。

使用l[i] >= 1000 and l[i] <= 9999测试它的长度是否为 4 位。

如果您坚持检查字符串,则len(str(l[i])).

基本上,l[i]是一个整数数组,通过说len(l[i]),你正在测量一个整数的长度,这是未定义的。

在代码中,将len(l[i])替换为l[i] >= 1000。或者,如果您绝对必须检查数字的长度,请使用len(str(l[i])).

我还想提一下,将变量设置为等于range(1,1000,2)是不必要的。

sum1 = 0
for i in range(0, 1000, 2):
sum1 += i
if i % 100 == 99 and (i >= 1000):
print(sum1, i)
print(sum1)

最新更新