我有以下代码,没有显示错误,但仍然没有输出。 我需要帮助来纠正这段代码。
class primenumber:
def __iter__(self,end):
self._end=end
def checkprimenumber(self,n):
for i in range(2,n):
if n%i==0:
return false
return true
def __iter__(self):
yield 2
if self._end>2:
for n in range(2,self._end):
if checkprimenumber(n):
yield n
def main():
r=primenumber(150)
for n in r:
print (n)
if __name__ == "__main__":main
答案 0 :(得分:3)
此代码不太可能执行任何操作,因为它不调用任何方法。
在主调用中添加括号并删除if
-
if __name__ == "__main__":
main()
之后,您会在代码中看到一些错误(例如缺少构造函数和没有self.
的成员方法调用)
答案 1 :(得分:1)
有一些小问题:
class Primenumber(object):
def __init__(self, end): # Init instead of __iter__ here
self._end = end
def checkprimenumber(self,n):
for i in range(2,n):
if n%i==0:
return False
return True
def __iter__(self):
yield 2
if self._end>2:
for n in range(2,self._end):
if self.checkprimenumber(n): # Need to call to self.
yield n
def main():
r=Primenumber(150)
for n in r:
print(n)
if __name__ == "__main__":
main()
期待这两个小问题,我发现没有进一步的错误。但通常错误消息会告诉您缺少的内容,您应该能够自己修复它。 : - )