python - 尝试分配循环索引时“int”对象不可迭代

标签 python loops variable-assignment

<分区>

这真的很奇怪,请在下面的代码片段中进行循环,当我删除 num=i 时,一切正常,但它会导致迭代问题。

错误代码

In [17]: prim_list=[]
    ...: for i in range(2,101):
    ...:     print i
    ...:     num=i,count=0        # line with issue
    ...:     for j in range(1,i/2):
    ...:         div=j
    ...:         if(num%div==0):
    ...:             count=count+1
    ...:     if(count==1):
    ...:         prim_list.append(num)
    ...:
2
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-a8dd2a52322e> in <module>()
      2 for i in range(2,101):
      3     print i
----> 4     num=i,count=0
      5     for j in range(1,i/2):
      6         div=j

TypeError: 'int' object is not iterable

工作正常

In [19]: prim_list=[]
    ...: for i in range(2,101):
    ...:     count=0              # notice num=i assignment is removed
    ...:     for j in range(1,i/2):
    ...:         div=j
    ...:         if(num%div==0):
    ...:             count=count+1
    ...:     if(count==1):
    ...:         prim_list.append(num)
    ...: print "done"
    ...:
done

我不明白的是为什么赋值导致循环迭代错误!!??

感谢任何帮助!

最佳答案

您正在使用链式分配:

num=i,count=0

num = (i, count) = 0

其中 num = 0(i, count) = 0 被赋值。因为 0 不是长度为 2 的可迭代对象,所以不能将其分配给目标元组。

使用

num, count = i, 0

num = i
count = 0

相反。

关于python - 尝试分配循环索引时“int”对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45333918/

相关文章:

python - Heroku H10错误— Python

python - "Python closure"适用于函数对象吗?

php - 我无法从已经使用 GROUP BY 的表中循环记录

rbind 从 R 中没有循环的函数返回的列表

python - 使用 python 检索行数

python - AttributeError: 'builtin_function_or_method' 对象没有属性 'split'

java - 无需 MultiMap 从用户输入动态创建 ArrayList

python - 矩阵分配到位?

java - 在java中分配变量的不同方法?

c++ - 复制 C 风格的数组和结构