2017-10-05 8 views
1

world!Aligner les numéros sur plusieurs lignes

Je suis bloqué à une question basique. Nous utilisons des commandes simples pour ces questions (format, if, while, et toutes les bases).

Je suis venu aussi loin que pour pouvoir produire ceci:

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

en utilisant le code suivant:

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

Le problème vient à la question suivante:

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

Malheureusement, je suis bloqué pour pouvoir changer le code afin qu'il suive le modèle ci-dessus.

Merci d'avance!

Répondre

1

Vous avez juste besoin de prendre une nouvelle variable et incrémenter dans chaque itération:

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

Sortie:

>>> 
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 

Vous pouvez aussi le faire en boucle au lieu de deux:

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

Oh, comment ne pas avoir vu ça! Merci beaucoup, c'est exactement ce dont j'avais besoin! –