python-3.x - 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 位密码中计算不同数量结果的程序。请帮助我理解我的错误!
解决方案
在您的程序中,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)))
推荐阅读
- java - 使用 Keycloak SSO 在 2 个应用程序之间保持身份验证
- swift - 如何在 Swift 中设置 NSLayoutConstraint?
- python - 如何告诉 cvxpy 如何对目标函数中的矩阵值求和?
- iis - IIS 中的客户端调试与服务器端调试
- java - 在 java BufferedReader 中找不到文件,即使文件存在(并且使用 java 确认它的存在)!
- sql - 在 Google Query 中,当查询返回特定月份的空集时,向单元格返回 0
- javascript - Typescript ENUM 按值搜索
- python - 如何根据第一级最大值过滤 MultiIndex 数据帧?
- javascript - 暂时禁用 react-loadable
- javascript - 使用 moxios 测试 redux 异步方法