核心编程里的习题的问题
(a)研究这段代码并描述这段代码想做什么.在所有的(#)处都要填写你的注释.
(b)这个程序有一个很大的问题,比如输入6,12,20,30,等它会死掉,实际上它不能处理任何的偶数,找出原因.
(c)修正(b)中提出的问题
复制代码
问题是我运行的好好,没有死掉
(b)这个程序有一个很大的问题,比如输入6,12,20,30,等它会死掉,实际上它不能处理任何的偶数,找出原因.
(c)修正(b)中提出的问题
- num_str = raw_input('Enter a number: ')
-
- num_num = int(num_str)
-
- fac_list = range(1, num_num+1)
- print "BEFORE:", fac_list
-
- i = 0
-
- while i < len(fac_list):
-
- if num_num % fac_list[i] == 0:
- del fac_list[i]
- i = i + 1
-
- print "AFTER:", fac_list
作者: liaozd 发布时间: 2011-05-17
不同版本python在 while i < len(..) 时处理方式不一样
作者: windwiny 发布时间: 2011-05-18
本帖最后由 synchalt 于 2011-05-18 21:40 编辑
复制代码
- while i < len(fac_list):
-
- if num_num % fac_list[i] == 0:
- print i
- del fac_list[i]
- i = i + 1
- print "AFTER:", fac_list
-
- 输入6 输出:
- [1,2,3,4,5,6]
- 0
- 1
- 3
- [2,4,5]
- 题意好像是 想删掉能被本身整除的,,i[0] i[1] i[3]
- i[0]=1 i[1]=2 i[3] = 4<-----这个好像错了。i[5] = 6 没能删掉(至少i里面没打印出来。)
作者: synchalt 发布时间: 2011-05-18