2017-09-04 1 views
1

Voici mon code. J'ai besoin d'aide pour trouver la fonction d'impression.Comment puis-je imprimer 6 valeurs par ligne en utilisant l'instruction de boucle while en python

x=0 

while x < 999: 
    if x%40 ==0: 
     print(format(x,'7d'),end='') 
    x = x + 1 

La fonction d'impression que j'ai essayé d'utiliser ne fonctionne pas pour moi. mon code n'imprimera pas les valeurs comme je le voudrais aussi. Je veux imprimer 6 valeurs par ligne.

Je veux qu'il imprime comme ceci.

40 80 120 160 200 240 

280 320 360 400 440 480 

mais à la place il imprime sur une ligne droite comme s'il vous plaît aider.

+0

note 0' valeur est 'passe aussi' la condition x% 40 == 0', et devrait être sortie – RomanPerekhrest

Répondre

0

Sur chaque fois que vous imprimez le nombre, utilisez print() comme suit:

x = 1 
counter = 0 while x < 999: 
    if x % 40 == 0: 
     counter += 1 
     print(format(x,'7d'),end='') 
    if counter == 6: 
     print() 
     counter = 0 
    x = x + 1 

La sortie est similaire comme suit:

40  80 120 160 200 240 
280 320 360 400 440 480 
520 560 600 640 680 720 
760 800 840 880 920 960 
+0

comment puis-je laisser le 0 hors de la sortie. – anon

+0

@anon Voir ma vérification. J'ai commencé x à partir de 1 – Nabin

0

J'utiliser des variables compteurs supplémentaires:

x = c = 0 
l = '' # resulting line 
while x < 999: 
    if x % 40 == 0: 
     l += format(x,'7d') 
     c += 1 
     if c % 6 == 0: 
      l += '\n' 
    x += 1 

print(l) 

La sortie:

 0  40  80 120 160 200 
    240 280 320 360 400 440 
    480 520 560 600 640 680 
    720 760 800 840 880 920 
    960 
1

En python, il y a toujours une façon de faire quelque chose à court:

arr = [format(x, '7d') for x in range(40, 999, 40)] 
print('\n'.join(''.join(arr[i:i+6]) for i in range(0, len(arr), 6))) 

qui sort:

40  80 120 160 200 240 
280 320 360 400 440 480 
520 560 600 640 680 720 
760 800 840 880 920 960