我正在制作一个小程序来显示素数。代码(如下)产生了正确的答案,但我无法让输出看起来“不错”。
import math
N = int(input('List primes up to: '))
maxDigits = math.ceil(math.log10(N)) #equal spacing, even with lesser digit stuff
for i in range(3,N,2):
for d in range(2,int(math.sqrt(i))):
if i%d==0:
break
else :
print(str(i),end=' '*(maxDigits-len(str(i))))
这个想法是根据素数可能具有的最大位数,使尽可能多的列适合输出屏幕。但是现在当我运行程序时,它会以一长行显示所有数字,没有任何换行符。这导致输出如下所示:
太丑了!它灼伤了我的眼睛!http://img194.imageshack.us/img194/5522/2eyd.png
这……不是我想要的。如果不是因为数字绕行,并且如果没有足够的空间就知道转到下一行,那么一切都会正常工作。那么我怎样才能摆脱程序中这种烦人的包装呢?越优雅(即请不要告诉我我必须计算终端宽度并将其除以 maxDigits)越好...:D