【发布时间】:2014-01-02 06:34:39
【问题描述】:
我对 python 世界和一般的编码世界都比较陌生,所以我不太确定如何优化我的 python 脚本。我的脚本如下:
import math
z = 1
x = 0
while z != 0:
x = x+1
if x == 500:
z = 0
calculated = open('Prime_Numbers.txt', 'r')
readlines = calculated.readlines()
calculated.close()
a = len(readlines)
b = readlines[(a-1)]
b = int(b) + 1
for num in range(b, (b+1000)):
prime = True
calculated = open('Prime_Numbers.txt', 'r')
for i in calculated:
i = int(i)
q = math.ceil(num/2)
if (q%i==0):
prime = False
if prime:
calculated.close()
writeto = open('Prime_Numbers.txt', 'a')
num = str(num)
writeto.write("\n" + num)
writeto.close()
print(num)
你们中的一些人可能会猜到我在计算素数。它调用的外部文件包含 2 到 20 之间的所有质数。 我有 while 循环的原因是我希望能够控制它运行多长时间。
如果您有任何建议可以消除其中的任何混乱,请回复并告诉我,谢谢。
【问题讨论】:
-
如果您想对您的代码进行全面审查,您可能需要考虑在 codereview.stackexchange.com 上发帖。
-
为一个糟糕的算法优化代码不会大大加快它的速度。做更多的研究并找到更好的算法。
-
This 可能感兴趣...
-
或更一般的this。
-
这已经在 Python 中解决了很多次。我自己计算素数的解决方案可以在 stackoverflow.com/questions/9301781/… 找到,我并不认为它是最好的。