首页 > 解决方案 > 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 的倍数

标签: python

解决方案


您可以通过替换它来获得所需的效果:

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))

推荐阅读