世界!

我陷入一个基本问题。
对于这些问题,我们使用了简单的命令(格式,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


不幸的是,我一直无法更改代码,因此它将遵循上面显示的模式。

提前致谢!

最佳答案

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

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('')

关于python - 多行排列数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46581590/

10-11 19:18