首页 > 解决方案 > TypeError: 'int' object is not iterable 这是一个在 6 位密码中计算不同数量结果的程序

问题描述

pass_length = 26
for i in range(1,7):
    total_length = int(pass_length ** i)
    print(total_length)

print(sum(total_length))

这是一个在 6 位密码中计算不同数量结果的程序。请帮助我理解我的错误!

标签: python-3.x

解决方案


在您的程序中,total_length被重新分配给int循环的每次迭代,而第一个参数sum需要一个iterable,例如一个列表。您必须使用循环生成一个列表才能将其传递给sum函数:

pass_length = 26
total_length = []
for i in range(1, 7):
    total_length.append(int(pass_length ** i))

print(sum(total_length))

可以使用列表推导来简化循环:

pass_length = 26
print(sum([int(pass_length ** i) for i in range(1, 7)]))

或者更高效,使用生成器:

pass_length = 26
print(sum(int(pass_length ** i) for i in range(1, 7)))

推荐阅读