使用python打印多个数字格式,使列数大于行

时间:2017-02-18 08:31:59

标签: python

如何写一个加载一个参数(数字)的函数,并用python

打印这样的格式
import sys

def fun(num):
    column_count = 1

    for i in range(num):
        # once column_count's  square > i, columns + 1
        if column_count **2 == i:
            column_count += 1

    for i in range(num + 1):
        if i % column_count == 0:
            sys.stdout.write('x\n')
        else:
            sys.stdout.write('x')

    sys.stdout.flush()

fun(10)

我无法总结任何处理此解决方案的公式,可能是一个数学问题。

请注意答案 好吧,我自己解决了,但我认为这种方法很愚蠢。

bazel build tensorflow/examples/label_image:label_image &&
bazel-bin/tensorflow/examples/label_image/label_image \
--output_layer=final_result \
--labels=/tf_files/retrained_labels.txt \
--image=/home/hannan/Desktop/images.jpg \
--graph=/tf_files/retrained_graph.pb

2 个答案:

答案 0 :(得分:1)

这是string.format / zip_longest解决方案

import itertools
import math

def crosses(n):
    format = n * '{!r:4}  '
    numbers = list(range(1, n+1))
    print(format.format(*numbers))
    format = len(numbers) * '{:4}  '
    for f in itertools.zip_longest(
            *((min(mn, c)*'x' for mn, c in zip(
                itertools.repeat(math.ceil(math.sqrt(n))),
                range(n, 0, -math.ceil(math.sqrt(n)))))
              for n in numbers),
            fillvalue=''):
        print(format.format(*f))

crosses(10)

打印:

1     2     3     4     5     6     7     8     9     10    
x     xx    xx    xx    xxx   xxx   xxx   xxx   xxx   xxxx  
            x     xx    xx    xxx   xxx   xxx   xxx   xxxx  
                                    x     xx    xxx   xx    

它使用格式字符串来管理空白区域。除此之外,它是一个简单的循环线,内部循环由压缩生成器管理的数字。用于标题的修改后的格式字符串使用!r来回避整数的正常右对齐格式。

答案 1 :(得分:0)

当计数小于数字时你可以循环通过,如果计数%4 == 0,则打印(" \ n")否则打印(" x",end = ""。)

count = 0
while count < number:
    if count % 4 == 0:
        print("\n")
    print("x",end="")

只需将所有内容放在您的功能中。 我希望这有帮助。昨天我为CCC做了类似的问题。我不得不打印一个月的时间表,就像所有行一样。