请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

返回值None None 3 None 5 ...怎么去掉none

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class PrimeNumbersIterator(Iterator):
    def __init__(self,start,end):
        self.start = start-1
        self.end = end
 
    def IsPrimeNumbers(self,k):
        if k <= 2:
            return False
        = int(math.sqrt(k))+1
        for in xrange(2,x):
            if k%== 0:
                return False
        return True       
         
    def next(self):
        if self.start >= self.end:
            raise StopIteration
        else:
            self.start+=1 
            if self.IsPrimeNumbers(self.start) == True:
                return self.start
 
class PrimeNumbersIterable(Iterable):
    def __init__(self,start,end):
        self.start = start 
        self.end = end
     
    def __iter__(self):
        return PrimeNumbersIterator(self.start,self.end)
 
= PrimeNumbersIterable(1,20)
for in t:
    print i,


正在回答 回答被采纳积分+3

插入代码

1回答

程序员硕 2016-11-05 21:26:27

next方法逻辑有问题, 在不是素数时返回了None.

0 回复 有任何疑惑可以回复我~
  • 提问者 慕盖茨3698359 #1
    麻烦您说下怎么修改
    想了好久了 一直存在这个bug
    还有就是self.start +=1 那,每次都是把第一个元素过滤掉,所以又在__init__ 那self.start = start -1
    回复 有任何疑惑可以回复我~ 2016-11-06 11:17:40
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号