Noo*_*tor 2 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
Run Code Online (Sandbox Code Playgroud)
工作正常
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
Run Code Online (Sandbox Code Playgroud)
我不理解的是为什么赋值导致循环迭代错误!! ??
任何帮助表示赞赏!
您正在使用链式作业:
num=i,count=0
Run Code Online (Sandbox Code Playgroud)
是
num = (i, count) = 0
Run Code Online (Sandbox Code Playgroud)
在哪里num = 0和(i, count) = 0被分配.因为0它不是长度为2的可迭代,所以它不能分配给目标元组.
使用
num, count = i, 0
Run Code Online (Sandbox Code Playgroud)
要么
num = i
count = 0
Run Code Online (Sandbox Code Playgroud)
代替.
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |