python - TypeError: 'int' object is not iterable map(), list() , set() 不能解决我的问题
问题描述
我正在编写一个程序来有效地除以三,但我可以从 int 中提取单个数字。
我已经尝试过 map() 和 list() 和 set() 并且它们没有工作
num = 1
while True:
num = num + 1
threetest = 0
digits = list(num) #(This is line 17)
for a in range ( 0, len(str(num))):
threetest = threetest + digits[a]
if (treetest % 3) != 0:
...
回溯(最后一次调用):文件“C:\test.py”,第 17 行,数字 = list(num) TypeError: 'int' object is not iterable
我希望能够将像 936 这样的数字的各个数字相加,然后将总和除以 3 以有效地找到它是否是 3 的倍数
解决方案
您可以通过替换它来获得所需的效果:
threetest = 0
digits = list(num)
for a in range (0, len(str(num))):
threetest = threetest + digits[a]
有了这个:
threetest = 0
for digit in str(num):
threetest += int(digit)
甚至更简单(而且更惯用):
threetest = sum(int(digit) for digit in str(num))
推荐阅读
- ubuntu - 这是在 Ubuntu 20.04 上分发 Ansible 的正确方法吗?
- wordpress - WordPress 恶意软件/top:0;左:-9999px URL
- python - 通过 Python 在 SQL 查询中使用通配符和特殊字符
- python - 如何在kivy中短时间显示标签?
- reactjs - 如何让 React 将数字附加到变量?
- python - 如何绘制具有不同内核的 SVM 的决策边界?(3个类,3个特征)
- r - 为什么 switch("d", a = 1, b = 2) 不给出任何警告、错误或输出?
- azure - 在常规 Azure AD 租户中创建 Azure AD B2C 应用注册的目的是什么?
- machine-learning - Sklearn k-means聚类(加权),确定每个特征的最佳样本权重?
- r - R:使用magick在1个面板中显示4个png图像