将数字排成多行

时间:2017-10-05 08:59:08

标签: python design-patterns format range line

世界!

我坚持一个基本问题。 我们对这些问题使用简单命令(格式,if,while和所有基础)。

我的到来是为了能够产生这个:

  1  2  3  4
  1  2  3  4
  1  2  3  4
  1  2  3  4

使用以下代码:

number= 0
while number<= 0:
    number = input("Give a number which is bigger than 0 : ")
    if number.isdigit():
        number=int(number)
    else:
        print("Give an integer")
        number= 0
for x in range(number):
    for y in range(1,number+1):
        print(" {}{} ".format('',y), end='' )
    print('')

问题在于下一个问题:

  1  2  3  4
  5  6  7  8
  9 10 11 12
 13 14 15 16

不幸的是,我仍然坚持能够更改代码,因此它将遵循上面显示的模式。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您只需要获取一个新变量并在每次迭代中递增它:

number= 0
while number<= 0:
    number = input("Give a number which is bigger than 0 : ")
    if number.isdigit():
        number=int(number)
    else:
        print("Give an integer")
        number= 0
z=0
for x in range(number):
    for y in range(1,number+1):
        z += 1
        print(" {}{:<3} ".format('',z), end='' )
    print('')

输出:

>>> 
Give a number which is bigger than 0 : 4
 1    2    3    4   
 5    6    7    8   
 9    10   11   12  
 13   14   15   16  

您也可以使用for循环而不是两个:

for i in range(number*number):
    i+=1
    print(" {}{:<3} ".format('',i), end='' )
    if i%number==0:
        print('')