使用Python的表格格式

时间:2017-03-21 16:29:00

标签: python tabular

我正在尝试获取以下代码的输出:

for x in range(1,100):
   if x==2:
      print(x)
   else:
      for i in range (2,x):
        if x%i==0:
            break
        elif x%i!=0:
            if i==(x-1):
                print(x)

输出如下:

 2   3   5   7  11  13  17  19  23  29
31  37  41  43  47  53  59  61  67  71
73  79  83  89  97 
  1. 必须是十行
  2. 单个数字必须叠加在单个数字上,数十个数字等等。

3 个答案:

答案 0 :(得分:0)

你可以使用`print(str(x)+“\ t”)来获得制表符间距输出。如果您将获得新行中的每个值,则使用sys.stdout.write而不是print。

此外,不需要此条件elif x%i!=0,只需使用其他

答案 1 :(得分:0)

for x in range(1,100):
   if x==2:
      print(x, end="\t")
   else:
      for i in range (2,x):
        if x%i==0:
            break
        elif x%i!=0:
            if i==(x-1):
                print(x, end="\t")

这会在每个印刷品后面放置一个制表工具。你可以使用end =" "在印刷品后面留一个空间。这样你的循环就不会将每个结果打印在不同的行中。

答案 2 :(得分:0)

'%4S' %prime

如果您有素数,可以使用'%4s' % prime右对齐4个字符的素数(您可以选择另一个宽度,或根据您的范围进行调整):

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41,
          43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

width = 4
cell_format = '%'+str(width)+'s'
cells = 10

for i,p in enumerate(primes):
    if i % 10 == 0:
        print
    print cell_format % p,

输出:

   2    3    5    7   11   13   17   19   23   29
  31   37   41   43   47   53   59   61   67   71
  73   79   83   89   97

您的代码:

Python 2

count = 0
cells = 10
for x in range(1,100):
   if x==2:
      print('%4s' % x),
   else:
      for i in range (2,x):
        if x%i==0:
            break
        elif x%i!=0:
            if i==(x-1):
                count += 1
                if count % cells == 0:
                    print("")
                print('%4s' % x),

Python 3

count = 0
cells = 10
for x in range(1, 100):
    if x == 2:
        print('%4s' % x, end='')
    else:
        for i in range(2, x):
            if x % i == 0:
                break
            elif x % i != 0:
                if i == (x - 1):
                    count += 1
                    if count % cells == 0:
                        print("")
                    print('%4s' % x, end='')
print("")